2.1.4 MQI命令使用時のOpenTP1アプリケーションとの関係
TP1/Message Queueのアプリケーションは,OpenTP1のSUP(サービス利用プログラム),SPP(サービス提供プログラム),またはMHP(メッセージ処理プログラム)として作成します。アプリケーションからのメッセージの登録および取り出しは,OpenTP1のトランザクションと同期させることができます。
TP1/Message Queueのアプリケーションは,C言語またはCOBOL言語で作成します。データ操作言語では作成できません。
- 〈この項の構成〉
(1) TP1/Message Queueで使用できる命令
TP1/Message Queueで使用できる命令を次の表に示します。なお,命令の詳細については,マニュアル「TP1/Message Queue プログラム作成リファレンス」を参照してください。
命令 |
SUP |
SPP |
MHP |
オフラインの業務をするアプリケーション |
|||
---|---|---|---|---|---|---|---|
トランザクション範囲でない |
トランザクション範囲(ルート) |
トランザクション範囲でない |
トランザクション範囲 |
||||
ルート |
ルート以外 |
||||||
MQCONN |
○ |
○ |
○ |
○ |
○ |
○ |
− |
MQDISC |
○ |
○ |
○ |
○ |
○ |
○ |
− |
MQOPEN |
○ |
○ |
○ |
○ |
○ |
○ |
− |
MQCLOSE |
○ |
○ |
○ |
○ |
○ |
○ |
− |
MQPUT |
○ |
○ |
○ |
○ |
○ |
○ |
− |
MQGET |
○ |
○ |
○ |
○ |
○ |
○ |
− |
MQPUT1 |
○ |
○ |
○ |
○ |
○ |
○ |
− |
MQINQ |
○ |
○ |
○ |
○ |
○ |
○ |
− |
MQSET |
○ |
○ |
○ |
○ |
○ |
○ |
− |
(2) アプリケーションとキューマネジャの接続
アプリケーションがメッセージキューイング機能を使用する場合,必ずMQCONN命令を呼び出してキューマネジャに接続してください。キューマネジャに接続すると,コネクションハンドルという値がアプリケーションに返されます。
また,キューなどのオブジェクトを使用する場合は,MQOPEN命令を呼び出してオブジェクトをオープンする必要があります(ただし,MQPUT1命令を使用する場合は不要です)。オブジェクトをオープンすると,オブジェクトハンドルという値がアプリケーションに返されます。
アプリケーションとキューマネジャの接続の手順およびハンドルの有効範囲について,次の図に示します。
図中に示したアプリケーションとキューマネジャの接続の手順を次に示します。図中の番号と,手順の番号は対応しています。
-
MQCONN命令を呼び出してキューマネジャへ接続を要求します。
-
キューマネジャは,コネクションハンドルをMQCONN命令に返します。
-
手順2.で返されたコネクションハンドルを指定してMQOPEN命令を呼び出します。
-
キューマネジャは,オブジェクトハンドルをMQOPEN命令に返します。
-
MQOPEN命令以降に呼び出す命令で,該当するオブジェクトを利用する場合には,手順4.で返されたオブジェクトハンドルを指定します。
ハンドルの有効範囲を次に示します。
- コネクションハンドル
-
MQCONN命令を呼び出したアプリケーション(アプリケーションとキューマネジャをMQCONN命令で接続し,MQDISC命令で切り離すまで)
- オブジェクトハンドル
-
MQOPEN命令を呼び出したアプリケーション(オブジェクトをMQOPEN命令でオープンし,MQCLOSE命令でクローズするまで)