7.7.9 Message Queue受付実行時の障害対策
Message Queue受付では,障害情報として性能解析トレースを出力します。
ここでは,Message Queue受付実行時に発生したエラーの伝わり方と,性能解析トレースについて説明します。
- 〈この項の構成〉
(1) Message Queue受付実行時に発生したエラーの伝わり方
JMSプロバイダ(IBM MQ)からMessage Queue受付を使用してビジネスプロセスを呼び出す場合のエラーの伝わり方を説明します。
カスタム受付フレームワークがエラーをリターンした場合のエラーの伝わり方を次の図に示します。
- 参考
-
サービス部品またはサービスアダプタからフォルトが返された場合,通信モデルが非同期の受付に対してビジネスプロセスからフォルトを返すことができないため,例外で返されます。そのため,エラーの伝わり方は次の図に示す流れと同じになります。
- 図中に示したエラー1〜エラー5の要因を次に示します。
-
-
エラー1:要求パラメタ不正など
-
エラー2:宛先(ロケーション)が見つからない,サービスアダプタが停止しているなど
-
エラー3:データ変換の失敗など
-
エラー4:宛先不正,サービス部品が停止,通信障害など
-
エラー5:ビジネスプロセス処理上での例外エラーなど
エラー1〜エラー5のどれかが発生した場合,例外をキャッチしたカスタム受付フレームワークはMessage Queue受付の受付処理に対して,CSCMsgServerExceptionをスローします。CSCMsgServerExceptionの詳細は,マニュアル「サービスプラットフォーム 開発ガイド 受付・アダプタ定義編」の「付録A.3 カスタム受付フレームワークのAPI」を参照してください。
Message Queue受付の受付処理では,キャッチした例外を基に例外ログを出力し,EJBContext#setRollbackOnlyを実行したあと,MQリソースアダプタに正常応答します。
MQリソースアダプタでは,JMSプロバイダ(IBM MQ)のキューマネージャに対して正常応答をそのまま渡します。
JMSプロバイダ(IBM MQ)のキューマネージャは,トランザクションをロールバックし,メッセージをキューの先頭に戻します。
-
- 注意事項
-
ロールバック回数制限値などの設定によって,ロールバック回数が多くなった場合は,メッセージはデッドレターキューへ移動されます。ロールバック回数制限値の詳細は,マニュアル「サービスプラットフォーム 解説」の「2.10.1 Message Queue受付を使用したサービス部品の呼び出し」の,メッセージのロールバック回数の設定に関する記述を参照してください。
(2) 障害情報の取得(Message Queue受付)
運用時に障害が発生した場合,障害対策に必要な情報は,ログファイルにログとして出力され,トレースファイルにトレースとして出力されます。
ここでは,メッセージログおよび各種トレースの取得方法について説明します。
(a) メッセージログ(Message Queue受付)
メッセージログのJ2EEサーバの稼働ログに,Message Queue受付で発生した各種情報がメッセージとして出力されます。
メッセージログの出力内容や出力先については,「7.4.1 メッセージログ」を参照してください。
(b) リクエストトレース(Message Queue受付)
リクエストトレースは,リクエストの障害要因の解析に使用します。
リクエストトレースの出力は,Message Queue受付からではなく,カスタム受付フレームワークからになります。
リクエストトレースの詳細は,マニュアル「サービスプラットフォーム 開発ガイド 受付・アダプタ定義編」の「付録A.8 障害情報の取得(カスタム受付)」のリクエストトレース(カスタム受付)に関する説明を参照してください。
(c) 性能解析トレース(Message Queue受付)
Message Queue受付での性能解析トレース(PRFトレース)について説明します。
- ●性能解析トレースの出力形式
-
性能解析トレースファイルに出力される形式は,J2EEサーバの性能解析トレースと同様です。詳細は,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7. 性能解析トレースを使用した性能解析」を参照してください。
- ●出力される内容
-
性能解析トレースファイルに出力される内容を次の表に示します。
表7‒117 性能解析トレースファイルに出力される内容(Message Queue受付の場合) 項目
内容
イベントID
取得ポイントのイベントIDが出力されます。
取得ポイントの詳細は,項目「性能解析トレースの取得ポイント」を参照してください。
リターンコード
取得ポイント種別が出力されます。
-
0:正常終了
-
1:異常終了
インターフェース名
クラス名が出力されます。
オペレーション名
メソッド名が出力されます。
オプション情報
次のオプション情報が出力されます。
-
JMSメッセージID
-
受付名
-
受付ID
-
サービス名
-
サービスオペレーション名
-
例外名(障害発生時だけ)
-
- ●性能解析トレースの取得ポイント
-
性能解析トレースの取得ポイントを次の図に示します。
図7‒113 性能解析トレースの取得ポイント(Message Queue受付の場合) イベントID,トレース取得ポイント,および性能解析トレース取得レベルを次の表に示します。表の「図中の番号」は,上の図の番号と対応しています。
表7‒118 性能解析トレースの取得ポイント(Message Queue受付の場合) イベントID
図中の番号
トレース取得ポイント
レベル
0x98A0
1
Message Queue受付の入口
A
0x98A1
2
Message Queue受付の出口
A
0x98A2
3
カスタム受付フレームワークの呼び出し口
B
0x98A3
4
カスタム受付フレームワークの応答受信口
B
0x9860
5
カスタム受付フレームワークの入口
A
0x9861
6
カスタム受付フレームワークの出口
A
0x9864
7
HCSCメッセージ配送制御の呼び出し口
A
0x9865
8
HCSCメッセージ配送制御の応答受信口
A
- ●性能解析トレースの取得方法と出力先
-
性能解析トレースを取得するには設定が必要です。設定の詳細は,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7. 性能解析トレースを使用した性能解析」を参照してください。
(d) ユーザ電文トレース(Message Queue受付)
ユーザ電文トレースは,電文の状態を確認するために使用します。
ユーザ電文トレースの出力は,Message Queue受付からではなく,カスタム受付フレームワークからになります。
ユーザ電文トレースの詳細は,マニュアル「サービスプラットフォーム 開発ガイド 受付・アダプタ定義編」の「付録A.8 障害情報の取得(カスタム受付)」のリクエストトレース(カスタム受付)に関する説明を参照してください。
(3) Message Queue受付処理中のJ2EEサーバダウン時の対策
Message Queue受付の処理中にJ2EEサーバがダウンした場合,IBM MQの仕様でメッセージは即時ロールバックされません。その場合,IBM MQサーバを再起動してください。