Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue プログラム作成の手引


3.3.4 報告メッセージ

報告メッセージは,メッセージ処理時のエラー発生などのイベントを,アプリケーションに知らせます。報告メッセージは次に示すプロセスによって生成されます。

報告メッセージが生成されるタイミングは任意であり,キューに登録されます。

〈この項の構成〉

(1) 報告メッセージの種類

メッセージをキューに登録するとき,次に示すメッセージの受信を選択できます。

注意

各種の報告メッセージは,次に示すどれかに該当します。

  • 元のメッセージを持っています。

  • 元のメッセージのデータから先頭100バイトを持っています。

  • 元のメッセージからのデータを持っていません。

メッセージをキューに登録するときには,1種類以上の報告メッセージを要求できます。メッセージ配布確認(COD)報告メッセージと例外報告メッセージのオプションを選択した場合,メッセージの転送が失敗すると例外報告メッセージを受信できます。しかし,メッセージ配布確認(COD)報告メッセージのオプションだけを選択した場合には,メッセージの転送が失敗しても例外報告メッセージを受信できません。

該当するメッセージを生成するための選択基準が満たされるとき,要求した報告メッセージだけを受信できます。

(2) 報告メッセージオプション

報告メッセージを受信する場合には,ReplyToQフィールドに応答キューの名前を指定してください。指定しない場合,元のメッセージを発行するMQPUT命令とMQPUT1命令はMQRC_MISSING_REPLY_TO_Qで失敗します。

該当するメッセージに対して生成される報告メッセージのMsgIdおよびCorrelIdフィールドの内容を指定するために,メッセージ記述子(MQMD構造体)にその他の報告オプションを設定することもできます。

メッセージについての報告を作成するときには,サーバアプリケーションでこれらのオプションが設定されているか確認するようにしてください。

報告の性質を示すために,キューマネジャは報告メッセージ返答コードを使用します。キューマネジャは報告メッセージ返答コードを報告メッセージのメッセージ記述子のFeedbackフィールドに設定します。また,MQIの理由コードをFeedbackフィールドに返すこともあります。TP1/Message Queueではアプリケーションで使用できる報告メッセージ返答コードを規定しています。

報告メッセージ返答コードを使用するアプリケーションの例としては,他アプリケーションがキューを処理する負荷を監視するアプリケーションがあります。一つのキューを処理している複数のアプリケーションがあるとします。キューにあるメッセージの数がそれだけの数のアプリケーションを必要としなくなると,報告メッセージ(FeedbackフィールドがMQFB_QUIT)をアプリケーションに送信して,動作を中止するよう指示できます。幾つのアプリケーションがキューを処理しているのか検出するために,監視アプリケーションはMQINQ命令を使用できます。