MQ Adapter
Tuxedo MQ Adapterの実行
この章の内容は以下のとおりです。
サーバーの起動
MQ Adapterサーバーは、tmboot
などの標準のTUXEDOユーティリティを使用して、TUXEDOアプリケーションの一部として起動します。MQ Adapterはサーバーの構成ファイルを読み込んで、指定されたキュー・マネージャに接続しようとします。MQ Adapterがキュー・マネージャとの接続を確立すると、Tuxedo to WebSphere MQサーバー(TM_MQO)はそのキュー・マネージャに関連付けられているサービスを通知します。
TUXEDO-to-WebSphere MQリクエストの開始
TUXEDOクライアントはTuxedo to MQサーバー(TM_MQO)で通知されたすべてのサービスを呼び出すことができます。TUXEDO-to-WebSphere MQリクエストは次のアクションから成ります。
- TUXEDOクライアントはTM_MQOで通知されたサービスに対するリクエストを開始します。
- MQ AdapterはWebSphere MQ Message Queue Interface (MQI)を使用して、これらのリクエストを適切なWebSphere MQキューに転送します。
- MQ Adapterは指定された応答キューからレスポンス・データ(存在する場合)を取り出し、このデータをTUXEDOクライアントに戻します。
WebSphere MQ-to-TUXEDOリクエストの開始
WebSphere MQアプリケーションはWebSphere MQ to Tuxedoサーバー(TM_MQI)を介してTUXEDOサービスにリクエストすることができます。WebSphere MQ-to-TUXEDOリクエストは次のアクションから成ります。
- WebSphere MQアプリケーションは、サービスにリクエストするメッセージを、指定されたキューに登録します。
- MQ Adapterは受信キューからメッセージを取り出します。
- MQ Adapterは適切なサービスにメッセージ・データを転送します。
- MQ Adapterは指定された応答キューにレスポンス・データ(存在する場合)を置きます。
キューに登録されたメッセージのWebSphere MQへの送信、WebSphere MQからの受信
TMQUEUE_MQMサーバーは、TUXEDOクライアントおよびサーバー・プロセスからのtpenqueue
およびtpdequeue
リクエストを処理します。
tpenqueueリクエストの処理
tpenqueue
リクエストの構文は次のとおりです。
tpenqueue
リクエストでは、上のすべてのパラメータが必要です。これらのパラメータについて、以下に簡単に説明します。詳細については、Oracle TUXEDOのプログラマーズ・ガイドを参照してください。
QSPACE
TMQUEUE_MQMで通知されたサービスの名前。この値は、TUXEDO UBBCONFIGファイルで-sオプションを使用して上書きすることができます。次に例を示します。
-s myname :MQMQUEUE
(デフォルトはMQMQUEUE)
QNAME
アダプタがメッセージを置いたり、取り出したりするキューの名前。127文字まで指定できます。TMQUEUE_MQM構成ファイルのQUEUEセクションにあるTUXNAMEパラメータからマップされたWebSphere MQキューに相当します。
QCTL
メッセージに関する追加情報を指定します。
tpenqueue
リクエストで定義できる、サポートされるオプションは次のとおりです。
このメッセージに適用されるオプションはありません。
メッセージの優先順位。このフィールドで指定できるTUXEDO値は1 - 100です。指定できるMQ値は0 - 9であり、TUXEDO値に0=TUXEDO 1-10、1=TUXEDO 11-20、のようにマップされます。
相関ID。リクエストに対するレスポンスを識別します。TUXEDOは最大32バイトをサポートします。MQ Adapterは最大24バイトをサポートするため、
tpenqueue
リクエストではTUXEDO値が切り詰められます。
応答メッセージを置くキューの名前。127文字まで指定できます。
メッセージがキューに置かれたときに生成されるメッセージIDを戻します。TUXEDOは最大32バイトをサポートします。MQ Adapterでは最大24バイトをサポートするため、IDにnull値が追加されます。
サービスの配信品質を指定します。TPQQOSPERSISTENTの値を指定した場合、MQの永続性はMQPER_PERSISTENTに設定されます。TPQQOSNONPERSISTENTの値を指定した場合、MQの永続性はMQPER_NOT_PERSISTENTに設定されます。TPQQOSDEFAULTPERSISTの値を指定した場合、または、TPQDELIVERYQOSの値を指定しない場合、MQの永続性は、トランザクション内でリクエストが作成された場合はMQPER_PERSISTENTに設定されますが、それ以外の場合はMQPER_PERSISTENCE_AS_Q_DEFに設定されます。
キューに登録されたメッセージが期限切れにならないことを指定します。これは、WebSphere MQに渡されるMQMD構造体のMQEI_UNLIMITEDの値に相当します。
キューに登録されたメッセージの期限の絶対時間を指定します。この値は、WebSphere MQで解釈される形式に変換されて、WebSphere MQ MQMD構造体のExpiryフィールドを通じてMQに渡されます。
キューに登録されたメッセージの期限の相対時間を指定します。この値は、WebSphere MQで解釈される形式に変換されて、WebSphere MQ MQMD構造体のExpiryフィールドを通じてMQに渡されます。
注意: |
TPQFAILUREQ、TPQBEFOREMSGID、TPQTOP、TPQTIME_REL、TPQTIME_ABS、およびTPQREPLYQOSオプションは、TMQUEUE_MQMに対するtpenqueue リクエストではサポートされません。 |
DATA
LEN
FLAGS
メッセージのフラグ設定を定義します。
tpenqueue
リクエストでサポートされるフラグは次のとおりです。
トランザクション・モードの呼び出し側からのメッセージは、呼び出し側と同じトランザクション内のキューには登録されません。
tpdequeueリクエストの処理
tpdequeue
リクエストの構文は次のとおりです。
A tpdequeue
リクエストでは、上記のすべてのパラメータが必要です。これらのパラメータについて、以下に簡単に説明します。詳細については、Oracle TUXEDOのプログラマーズ・ガイドを参照してください。
QSPACE
TMQUEUE_MQMで通知されたサービスの名前。この値は、TUXEDO UBBCONFIGファイルで-sオプションを使用して上書きすることができます。次に例を示します。
-s myname :MQMQUEUE
(デフォルト値はMQMQUEUE)
QNAME
アダプタがメッセージを置いたり、取り出したりするキューの名前。127文字まで指定できます。TMQUEUE_MQM構成ファイルのQUEUEセクションにあるTUXNAMEパラメータからマップされたWebSphere MQキューに相当します。
QCTL
メッセージに関する追加情報を指定します。
tpdequeue
リクエストで定義できる、サポートされるオプションは以下のとおりです。
このメッセージに適用されるオプションはありません。
指定されたメッセージIDのメッセージがある場合はデキューします。WebSphere MQ MQGET APIを呼び出すときに、指定されたメッセージIDは24バイトに切り詰められて、MQMD構造体の
MsgId
フィールドで渡されます。
メッセージの優先順位。このフィールドで指定できるTUXEDO値は1 - 100です。指定できるMQ値は0 - 9であり、TUXEDO値に0=TUXEDO 1-10、1=TUXEDO 11-20、のようにマップされます。
相関ID。リクエストに対するレスポンスを識別します。TUXEDOは最大32バイトをサポートします。MQは最大24バイトをサポートするため、このIDは常に、Tuxedoでサポートされる32バイトに適合します。残りの8バイトにはnull文字が設定されます。
応答メッセージを置くキューの名前。127文字まで指定できます。
メッセージがキューに置かれたときに生成されるメッセージIDを戻します。MQは最大24バイトをサポートするため、このIDは常に、Tuxedoでサポートされる32バイトに適合します。残りの8バイトにはnull文字が設定されます。
このフラグが設定されていると、指定されたメッセージが読み取られてもキューから削除されません。このフラグは、
tpdequeue()
操作にTPNOTRANフラグが設定されていることを意味します。つまり、非破壊的なデキューはトランザクション非対応です。トランザクション終了前にトランザクション内でエンキューまたはデキューされたメッセージを読み取ることはできないことに注意してください。
このフラグが設定され、
tpdequeue()
の呼び出しが成功し、サービスの配信品質を持つメッセージがキューに登録されていた場合、フラグは
ctl->delivery_qos
に格納されます。MQGETの呼び出しでMQPER_NOT_PERSISTENTの永続性が指定された場合、ctl->delivery_qosはTPQQOSNONPERSISTENTに設定されます。それ以外の場合は、TPQQOSPERSISTENTに設定されます。
注意: |
TPQWAITオプションはTMQUEUE_MQMに対するtpdequeue リクエストではサポートされません。 |
DATA
LEN
FLAGS
メッセージのフラグ設定を定義します。
tpde
キュー・リクエストでサポートされるフラグは次のとおりです。
トランザクション・モードの呼び出し側からのメッセージは、呼び出し側と同じトランザクション内ではデキューされません。