OpenTP1 メッセージキューイング機能 TP1/Message Queue 使用の手引
TP1/Message Queueのアプリケーションは,OpenTP1のSUP(サービス利用プログラム),SPP(サービス提供プログラム),またはMHP(メッセージ処理プログラム)として作成します。アプリケーションからのメッセージの登録および取り出しは,OpenTP1のトランザクションと同期させることができます。
TP1/Message Queueのアプリケーションは,C言語またはCOBOL言語で作成します。データ操作言語では作成できません。
TP1/Message Queueで使用できる命令を次の表に示します。なお,命令の詳細については,マニュアル「TP1/Message Queue プログラム作成リファレンス」を参照してください。
表2-3 TP1/Message Queueで使用できる命令
| 命令 | SUP | SPP | MHP | オフラインの業務をするアプリケーション | |||
|---|---|---|---|---|---|---|---|
| トランザクション範囲でない | トランザクション範囲(ルート) | トランザクション範囲でない | トランザクション範囲 | ||||
| ルート | ルート以外 | ||||||
| MQCONN | ○ | ○ | ○ | ○ | ○ | ○ | − |
| MQDISC | ○ | ○ | ○ | ○ | ○ | ○ | − |
| MQOPEN | ○ | ○ | ○ | ○ | ○ | ○ | − |
| MQCLOSE | ○ | ○ | ○ | ○ | ○ | ○ | − |
| MQPUT | ○ | ○ | ○ | ○ | ○ | ○ | − |
| MQGET | ○ | ○ | ○ | ○ | ○ | ○ | − |
| MQPUT1 | ○ | ○ | ○ | ○ | ○ | ○ | − |
| MQINQ | ○ | ○ | ○ | ○ | ○ | ○ | − |
| MQSET | ○ | ○ | ○ | ○ | ○ | ○ | − |
アプリケーションがメッセージキューイング機能を使用する場合,必ずMQCONN命令を呼び出してキューマネジャに接続してください。キューマネジャに接続すると,コネクションハンドルという値がアプリケーションに返されます。
また,キューなどのオブジェクトを使用する場合は,MQOPEN命令を呼び出してオブジェクトをオープンする必要があります(ただし,MQPUT1命令を使用する場合は不要です)。オブジェクトをオープンすると,オブジェクトハンドルという値がアプリケーションに返されます。
アプリケーションとキューマネジャの接続の手順およびハンドルの有効範囲について,次の図に示します。
図2-2 アプリケーションとキューマネジャの接続手順およびハンドルの有効範囲
図中に示したアプリケーションとキューマネジャの接続の手順を次に示します。図中の番号と,手順の番号は対応しています。
ハンドルの有効範囲を次に示します。
メッセージの登録および取り出しをOpenTP1のトランザクションと同期させることができます。OpenTP1のトランザクション内で,MQPUT命令,MQPUT1命令,またはMQGET命令を呼び出すと,その命令による登録および取り出しは,トランザクションの一部として処理されます。ただし,OpenTP1のトランザクション内であっても,同期点を取らないことを指定すると,その命令はトランザクションの一部にはなりません。
メッセージキューのアクセスでは,グローバルトランザクションのRPCの形態をすべて同期応答型RPCにする必要があります。非同期応答型RPC,非応答型RPCからメッセージキューへアクセスした場合,動作は保証されません。
All Rights Reserved. Copyright (C) 2006, 2011, Hitachi, Ltd.
(C) Copyright International Business Machines Corporation 1999, 2002. All rights reserved.