ページの先頭行へ戻る
Interstage Business Application Server アプリケーション開発ガイド
FUJITSU Software

3.1.7 補償ルート

ルーティング定義画面上に、特定のアプリケーションで異常が発生した場合に、取消し用アプリケーションを呼び出すメッセージを送信するためのルート(補償ルート)を定義します。
補償ルートは、以下のルートを逆戻りするルートとして指定することができます。

[実行ルート定義]画面、または[条件ルート定義]画面の[補償ルート]タブをクリックすると、以下の画面が表示されます。ここでは、そのルートに対し補償ルートを指定するかどうかの設定、および補償ルートを通過するメッセージに含める業務データを定義します。

補償ルートは、逆戻りするルートだけがサポートされます。そのため、業務処理開始アプリケーションから異常が発生する直前の業務処理実行アプリケーションまで補償処理メッセージを送信することや、異常となったメッセージが通過していない業務処理実行アプリケーションに対して補償処理メッセージを送信することはできません。

以下に補償ルートを指定したフロー定義例を示します。

各ルートに対応付けられている赤色の矢印が補償ルートを示すルートです。

上図の例の場合においての補償処理メッセージ運用を以下に示します。

補償ルートは、実行ルートや条件ルートのようにルーティング定義画面の任意の箇所へ設定することはできません。実行ルート、条件ルートの定義情報として補償ルートを指定することで、自動的にルートを逆戻りする補償ルートを示す赤い矢印が画面上に表示されます。

条件ルートに補償ルートを定義した場合、その条件ルートの始点側に接続されている同報・条件分岐へ入力しているルートへも自動的に補償ルートが設定されます。

以下に例を示します。

補償ルートへは、補償処理メッセージに含める業務データを指定できますが、同報・条件分岐へ入力している補償ルートが自動的に付与されるルートについては、複数存在する可能性があるため、メッセージに含める業務データを指定することはできません。条件ルートの補償ルートの定義により選択された業務データが、おのおのに渡されることになります。

代行分岐から出力している実行ルートに補償ルートの定義を行った場合、実行ルートと対になる代行ルート、および代行分岐へ入力しているルートに対し、自動的に補償ルートが設定されます。

以下に例を示します。

補償ルートへは、補償処理メッセージに含める業務データの業務データ名を指定できますが、実行ルートと対になる代行ルート、および代行分岐へ入力しているルートには、メッセージに含める業務データを指定することはできません。代行分岐から出力している実行ルートの補償ルートの定義により選択された業務データが、そのまま渡されることになります。

注意

  • ルーティング定義における補償ルートの自動設定規則については、“付録E 定義規約”を参照してください。

  • 補償ルートを指定した実行ルートや条件ルートをルーティング定義画面上で削除した場合、補償ルートの定義情報も削除されます。

  • 補償処理メッセージに引き継がれていない業務データを取消し処理用の業務処理実行アプリケーションの引数に指定した場合、実行時には初期値が引き渡されます。
    データ型ごとの引数に設定される初期値については、“■業務データの引継ぎに関する規約”を参照してください。

  • 代行ルートを通過してきたメッセージで異常が発生した場合、補償処理メッセージは通過してきた代行ルートのアクティビティへルーティングされます。

  • フロー定義ツールのアクティビティの定義において、補償ルートを実行する異常を定義し、かつ、該当アクティビティへの実行ルート定義で補償ルートの指定を行わなかった場合、補償ルートの実行が異常終了します。
    なお、この場合の異常終了時の動作は、業務処理実行アプリケーションの開発言語により異なります。

    • COBOLの場合は、シリアライズファイルを出力します。

    • Javaの場合は、フロー定義ツールの異常処理定義における未定義のアプリケーション異常発生時の定義に従って異常処理が行われます。