複数メッセージキューからのメッセージ参照を使用するアプリケーションとしては、複数のメッセージキューに対してメッセージの到着を監視するアプリケーションがあります。複数メッセージキューの監視アプリケーションは、事前にMQDおよび監視する複数のメッセージキューに接続して、複数メッセージキューからのメッセージ参照を行い、参照したメッセージの内容に対応するメッセージ受信アプリケーションを呼び出すように作成します。
複数メッセージキューへの接続は、プログラムインタフェースの“MQDCONNECTQEX”または“mqd_connectqex”を使用して行います。また、複数メッセージキューからのメッセージ参照は、プログラムインタフェースの“MQDPEEKMSGEX”または“mqd_peekmsgex”を使用して行います。
複数メッセージキューからのメッセージ参照の使用例を図6.10 複数メッセージキューからのメッセージ参照の使用例(Interstageアプリケーションの場合)に示します。
図6.10 複数メッセージキューからのメッセージ参照の使用例(Interstageアプリケーションの場合)
ポイント
図の説明
アプリケーション起動時にアプリケーションをMQDに接続します。
アプリケーション起動時にアプリケーションを目的の複数のメッセージキューに接続します。
メッセージの到着を待ち合わせるために、同期モードで複数メッセージキュー上のメッセージを参照します。
メッセージが到着したら、トランザクションを開始します。
参照したメッセージの内容に応じたメッセージ受信アプリケーション(Interstageのサーバアプリケーション)を呼び出します。
トランザクションを終了します。その後、次のメッセージの到着を待つために、3)の処理を繰り返します。
アプリケーション停止時にアプリケーションを複数のメッセージキューから切断します。このアプリケーションは、送信側からの“停止”を指示するメッセージを受信したときや参照しているメッセージキューをアクセス禁止にしたときに停止します。
アプリケーション停止時にアプリケーションをMQDから切断します。
ワークユニット起動時に(前出口プログラムで)アプリケーションをMQDに接続します。
ワークユニット起動時に(前出口プログラムで)アプリケーションを目的のメッセージキューに接続します。
メッセージ監視アプリケーションからの要求を受けて、メッセージキューからメッセージを受信します。1ユニット複数メッセージの場合は、1ユニットすべてのメッセージを受信します。
メッセージを受信したら、DB更新処理を行います。
ワークユニット停止時に(後出口プログラムで)アプリケーションをメッセージキューから切断します。
ワークユニット停止時に(後出口プログラムで)アプリケーションをMQDから切断します。
注意
Interstageアプリケーションでメッセージの送受信を行う場合、トランザクションを終了した後に、メッセージキューからの切断、および、MQDからの切断を行う必要があります。そのため、前出口プログラムでMQDへの接続、メッセージキューへの接続を行い、後出口プログラムでメッセージキューからの切断、MQDからの切断を行う必要があります。