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

2.4.1 概要

非同期アプリケーション連携実行基盤では、アプリケーションに異常が発生した場合の処理として、以下の4つの異常処理機能を提供しています。

補償ルート制御機能、およびメッセージ退避機能を異常処理機能と呼びます。
異常処理機能が設定されていない場合、またはエラーメッセージ退避キューへメッセージを送信中に異常が発生した場合に、メッセージはシリアライズファイルに退避されます。さらに、シリアライズファイルへの退避にも失敗した場合は、ワークユニットを停止します。
これらの処理結果はシステムログへ出力されます。
シリアライズファイルについての詳細は、“2.4.4 メッセージ退避機能”の“■メッセージのシリアライズファイル退避機能”を参照してください。

上記の処理は組み合わせて使用することができます。異常が発生した箇所によって処理の優先順位が変わります。以下に、アプリケーション例外発生時、メッセージ送信時、およびフローのタイムアウト時における異常処理の組み合わせと順序を示します。

アプリケーション異常が発生した場合

アプリケーション異常に対しては、リトライ機能およびメッセージ退避機能の組み合わせについて以下の3つから選択することができます。さらに、補償ルート制御機能も併用することができます。

組み合わせ

説明

リトライ機能のみ

異常が発生したアプリケーション処理を、リトライ回数分だけ繰り返し実行します。

メッセージ退避機能のみ

異常となったメッセージを、エラーメッセージ退避キューへ退避します。

リトライ機能+メッセージ退避機能

リトライ回数分リトライしても異常が改善されない場合に、異常が発生したメッセージをエラーメッセージ退避キューへ退避します。

リトライ機能+メッセージ退避機能、および補償ルート制御機能が設定されていた場合は、以下の順序で異常処理を行います。

  1. アプリケーション例外が発生すると、リトライを行います。

  2. リトライでも異常が解消されない場合は、補償ルートが発行されます。

  3. 補償ルートで失敗した場合は、シリアライズファイルへメッセージが退避されます。

メッセージ送信で異常が発生した場合

メッセージ送信の異常に対するリトライ機能およびメッセージ退避機能の組み合わせについては、アプリケーション例外に対する設定と同一です。さらに、代行ルート制御機能および補償ルート制御機能も併用することができます。
リトライ機能+メッセージ退避機能、代行ルート機能、および補償ルート制御機能のすべての機能が設定されていた場合は、以下の順序で異常処理を行います。

  1. 実行ルートで異常が発生すると、代行ルートへの送信を試みます。

  2. 実行ルートと代行ルート両方の送信先のキューが閉塞状態の場合は、異常処理定義にかかわらずリトライしつづけます。この際、リトライ回数はカウントされません。
    実行ルートと代行ルートどちらかでキュー閉塞以外の異常が発生した場合は、補償ルートが発行されます。

    注意

    実行ルートと代行ルート両方の送信先のキューが閉塞されていることにより送信失敗となる場合でも、メッセージの送信先が同報・分岐などの組み合わせにより複数の場合は、メッセージをロールバックしてメッセージ受信から再度行います。

  3. 補償ルートで失敗した場合は、シリアライズファイルへメッセージが退避されます。

フローのタイムアウトが発生した場合

フローのタイムアウトに対しては、異常処理機能の組み合わせについて以下の3つから選択することができます。

組み合わせ

説明

シリアライズファイル

異常となったメッセージを、シリアライズファイルへ直接退避します。

メッセージ退避機能

異常となったメッセージを、エラーメッセージ退避キューへ退避します。

補償ルート制御機能

補償ルートが設定されていれば、補償ルートを発行します。

補償ルート制御機能が設定されていた場合は、以下の順序で異常処理を行います。

  1. 補償ルートが発行されます。

  2. 補償ルートで失敗した場合は、シリアライズファイルへメッセージが退避されます。