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