特別な役割のFault : bpelx:replay, bpelx:rollback

Oracle BPEL Process Managerには、特殊な役割を与えられているFaultがあります。マニュアルには、明記されていませんが、便利な機能ですのでここで紹介させてもらいます。

■bpelx:replay
このFaultが発行されたスコープを再度実行します。
使い方は、Throwアクティビティを配置し、ネームスペースに"http://schemas.oracle.com/bpel/extension"、ローカルパートに"replay"を入力します。
※ネームスペース"http://schemas.oracle.com/bpel/extension"の名前空間接頭辞をbpelxとすることが多いので、以降bpelx:replayと表記します。

画面ショットにあるように、scopeのFault Handlerで、このbpelx:replayをThrowすることで、そのscopeが再度実行されます。

■bpelx:rollback
こちらは、トランザクションを強制的にrollbackさせるためのFaultです。使い方はほぼ同じで、Throwアクティビティを配置し、ネームスペースに"http://schemas.oracle.com/bpel/extension"、ローカルパートに"rollback"を入力します。DBアダプタやEJBの呼出しなど、トランザクショナルな処理を一つのプロセスで複数実行している場合などは、Fault Handlerでbpelx:rollbackを発行するようにしておくことで、Fault発生時には一連の処理がロールバックされます。