5.3 障害検出への報告メッセージの利用

MQI命令の発行時には,リモートキューマネジャはメッセージ登録の失敗などのエラーを報告できません。しかし,メッセージがどのように処理されたかについての報告メッセージを送信できます。

アプリケーション内で,報告メッセージをMQPUT命令で作成したり,報告メッセージを受信するオプションを選択したりできます。後者の場合,報告メッセージは他アプリケーションまたはキューマネジャによって送信されます。

<この節の構成>
(1) 報告メッセージの作成
(2) 報告メッセージの要求と受信

(1) 報告メッセージの作成

報告メッセージは,送信されたメッセージを処理できないことを他アプリケーションに知らせます。メッセージを送信したアプリケーションで問題の報告を期待しているかどうかを検出するためには,Reportフィールドを調査してください。報告メッセージが要求されていることを検出したあとは,次に示す項目を決定してください。

報告メッセージが生成された理由を示すには,Feedbackフィールドを使用してください。報告メッセージはアプリケーションの応答キューに登録してください。

(2) 報告メッセージの要求と受信

他アプリケーションにメッセージを送信する場合,Reportフィールドを設定して要求する報告を示さないと,問題の報告を受け取れません。

キューマネジャは,常にアプリケーションの応答キューに報告メッセージを登録します。ユーザのアプリケーションでも同じ処理をすることをお勧めします。報告メッセージ機能を使用する場合,メッセージ記述子に応答キューの名前を指定してください。指定がない場合,MQPUT命令は失敗します。

アプリケーションには,応答キューを監視し,到着したメッセージを処理するような手続きを作成してください。報告メッセージには登録元メッセージすべてが含まれたり,最初の100バイトが含まれたり,何も含まれていない可能性があることを考慮してください。

キューマネジャはFeedbackフィールドを設定します。これは,あて先キューがないといったエラーの理由を示すためです。アプリケーションでも同様に設定してください。