ここでは、MQD連携の運用について説明します。
MQD連携の運用中にエラーが発生した場合の対処方法は次のとおりです。
MQD受信を利用している場合
MQD受信でエラーが発生した場合、および、MQD受信から実行されたシーケンスがエラーになった場合、MQDのキューから取得したメッセージをロールバックし、MQD受信のユーティリティワークユニットを停止します。
エラー発生のタイミング、MQD受信の動作の関係は以下の通りです。
エラー発生タイミング | メッセージ | MQD受信(ユーティリティワークユニット) | MQD受信(CORBAワークユニット) |
---|---|---|---|
メッセージ受信前の処理で異常終了 | ロールバック | ワークユニットの停止 | ワークユニットの継続 |
メッセージ受信失敗 | ロールバック | ワークユニットの停止 | ワークユニットの継続 |
CORBAワークユニットへの通信失敗 | ロールバック | ワークユニットの停止 | ワークユニットの継続 |
CORBAワークユニットのMQDアダプタ内で異常終了 | ロールバック | ワークユニットの停止 | ワークユニットの継続 |
シーケンス呼び出し失敗 | ロールバック | ワークユニットの停止 | ワークユニットの継続 |
シーケンス異常終了 | ロールバック | ワークユニットの停止 | ワークユニットの継続 |
キューコミット失敗 | 注1 | ワークユニットの停止 | ワークユニットの継続 |
注1:ロールバックを実施した場合、冗送が発生する恐れがあることから、失敗したメッセージのロールバックは行いません。
システムログ、およびMQD受信のトレースログに出力されているエラー情報を参照して対処してください。MQD受信のトレースログ出力先は、“4.2.2 トレースログ”を参照してください。
対処後、停止したMQD受信を起動してください。MQD受信の起動方法は、“1.1.1 起動”を参照してください。
MQD送信を利用している場合
送信先のMQDのキューへの送信に失敗した場合、MQD送信の呼び出しがエラーとなり、シーケンスがエラー終了します。
システムログに出力されているエラー情報を参照して対処してください。
対処後、エラーとなったシーケンスを再度実行してください。
ポイント
MQD送信を呼び出した後のステップでエラーが発生した場合、メッセージが冗送する可能性があります。
冗送を防止するためには、サービス提供側アプリケーションで冗送を検知・対処してください。