MQ Adapter

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

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リクエストは次のアクションから成ります。

  1. TUXEDOクライアントはTM_MQOで通知されたサービスに対するリクエストを開始します。
  2. MQ AdapterはWebSphere MQ Message Queue Interface (MQI)を使用して、これらのリクエストを適切なWebSphere MQキューに転送します。
  3. MQ Adapterは指定された応答キューからレスポンス・データ(存在する場合)を取り出し、このデータをTUXEDOクライアントに戻します。

 


WebSphere MQ-to-TUXEDOリクエストの開始

WebSphere MQアプリケーションはWebSphere MQ to Tuxedoサーバー(TM_MQI)を介してTUXEDOサービスにリクエストすることができます。WebSphere MQ-to-TUXEDOリクエストは次のアクションから成ります。

  1. WebSphere MQアプリケーションは、サービスにリクエストするメッセージを、指定されたキューに登録します。
  2. MQ Adapterは受信キューからメッセージを取り出します。
  3. MQ Adapterは適切なサービスにメッセージ・データを転送します。
  4. MQ Adapterは指定された応答キューにレスポンス・データ(存在する場合)を置きます。

 


キューに登録されたメッセージのWebSphere MQへの送信、WebSphere MQからの受信

TMQUEUE_MQMサーバーは、TUXEDOクライアントおよびサーバー・プロセスからのtpenqueueおよびtpdequeueリクエストを処理します。

tpenqueueリクエストの処理

tpenqueueリクエストの構文は次のとおりです。

tpenqueue (qspace, qname, qctl, data, len, flags)

tpenqueueリクエストでは、上のすべてのパラメータが必要です。これらのパラメータについて、以下に簡単に説明します。詳細については、Oracle TUXEDOのプログラマーズ・ガイドを参照してください。

QSPACE

TMQUEUE_MQMで通知されたサービスの名前。この値は、TUXEDO UBBCONFIGファイルで-sオプションを使用して上書きすることができます。次に例を示します。
-s myname :MQMQUEUE (デフォルトはMQMQUEUE)

QNAME

アダプタがメッセージを置いたり、取り出したりするキューの名前。127文字まで指定できます。TMQUEUE_MQM構成ファイルのQUEUEセクションにあるTUXNAMEパラメータからマップされたWebSphere MQキューに相当します。

QCTL

メッセージに関する追加情報を指定します。tpenqueueリクエストで定義できる、サポートされるオプションは次のとおりです。

TPNOFLAGS

このメッセージに適用されるオプションはありません。

TPQPRIORITY

メッセージの優先順位。このフィールドで指定できるTUXEDO値は1 - 100です。指定できるMQ値は0 - 9であり、TUXEDO値に0=TUXEDO 1-10、1=TUXEDO 11-20、のようにマップされます。

TPQCORRID

相関ID。リクエストに対するレスポンスを識別します。TUXEDOは最大32バイトをサポートします。MQ Adapterは最大24バイトをサポートするため、tpenqueueリクエストではTUXEDO値が切り詰められます。

TPQREPLYQ

応答メッセージを置くキューの名前。127文字まで指定できます。

TPQMSGID

メッセージがキューに置かれたときに生成されるメッセージIDを戻します。TUXEDOは最大32バイトをサポートします。MQ Adapterでは最大24バイトをサポートするため、IDにnull値が追加されます。

TPQDELIVERYQOS

サービスの配信品質を指定します。TPQQOSPERSISTENTの値を指定した場合、MQの永続性はMQPER_PERSISTENTに設定されます。TPQQOSNONPERSISTENTの値を指定した場合、MQの永続性はMQPER_NOT_PERSISTENTに設定されます。TPQQOSDEFAULTPERSISTの値を指定した場合、または、TPQDELIVERYQOSの値を指定しない場合、MQの永続性は、トランザクション内でリクエストが作成された場合はMQPER_PERSISTENTに設定されますが、それ以外の場合はMQPER_PERSISTENCE_AS_Q_DEFに設定されます。

TPQEXPTIME_NONE

キューに登録されたメッセージが期限切れにならないことを指定します。これは、WebSphere MQに渡されるMQMD構造体のMQEI_UNLIMITEDの値に相当します。

TPQEXPTIME_ABS

キューに登録されたメッセージの期限の絶対時間を指定します。この値は、WebSphere MQで解釈される形式に変換されて、WebSphere MQ MQMD構造体のExpiryフィールドを通じてMQに渡されます。

TPQEXPTIME_REL

キューに登録されたメッセージの期限の相対時間を指定します。この値は、WebSphere MQで解釈される形式に変換されて、WebSphere MQ MQMD構造体のExpiryフィールドを通じてMQに渡されます。
注意: TPQFAILUREQ、TPQBEFOREMSGID、TPQTOP、TPQTIME_REL、TPQTIME_ABS、およびTPQREPLYQOSオプションは、TMQUEUE_MQMに対するtpenqueueリクエストではサポートされません。

DATA

キューに置かれるデータ。

LEN

キューに置かれるデータの長さ。

FLAGS

メッセージのフラグ設定を定義します。tpenqueueリクエストでサポートされるフラグは次のとおりです。

TPNOTRAN

トランザクション・モードの呼び出し側からのメッセージは、呼び出し側と同じトランザクション内のキューには登録されません。

tpdequeueリクエストの処理

tpdequeueリクエストの構文は次のとおりです。

tpdequeue (qspace, qname, qctl, data, len, flags)

A tpdequeueリクエストでは、上記のすべてのパラメータが必要です。これらのパラメータについて、以下に簡単に説明します。詳細については、Oracle TUXEDOのプログラマーズ・ガイドを参照してください。

QSPACE

TMQUEUE_MQMで通知されたサービスの名前。この値は、TUXEDO UBBCONFIGファイルで-sオプションを使用して上書きすることができます。次に例を示します。
-s myname :MQMQUEUE (デフォルト値はMQMQUEUE)

QNAME

アダプタがメッセージを置いたり、取り出したりするキューの名前。127文字まで指定できます。TMQUEUE_MQM構成ファイルのQUEUEセクションにあるTUXNAMEパラメータからマップされたWebSphere MQキューに相当します。

QCTL

メッセージに関する追加情報を指定します。tpdequeueリクエストで定義できる、サポートされるオプションは以下のとおりです。

TPNOFLAGS

このメッセージに適用されるオプションはありません。

TPQGETBYMSGID

指定されたメッセージIDのメッセージがある場合はデキューします。WebSphere MQ MQGET APIを呼び出すときに、指定されたメッセージIDは24バイトに切り詰められて、MQMD構造体のMsgIdフィールドで渡されます。

TPQGETBYCORRID

指定された相関IDのメッセージをデキューします。

TPQPRIORITY

メッセージの優先順位。このフィールドで指定できるTUXEDO値は1 - 100です。指定できるMQ値は0 - 9であり、TUXEDO値に0=TUXEDO 1-10、1=TUXEDO 11-20、のようにマップされます。

TPQCORRID

相関ID。リクエストに対するレスポンスを識別します。TUXEDOは最大32バイトをサポートします。MQは最大24バイトをサポートするため、このIDは常に、Tuxedoでサポートされる32バイトに適合します。残りの8バイトにはnull文字が設定されます。

TPQREPLYQ

応答メッセージを置くキューの名前。127文字まで指定できます。

TPQMSGID

メッセージがキューに置かれたときに生成されるメッセージIDを戻します。MQは最大24バイトをサポートするため、このIDは常に、Tuxedoでサポートされる32バイトに適合します。残りの8バイトにはnull文字が設定されます。

TPQPEEK

このフラグが設定されていると、指定されたメッセージが読み取られてもキューから削除されません。このフラグは、tpdequeue()操作にTPNOTRANフラグが設定されていることを意味します。つまり、非破壊的なデキューはトランザクション非対応です。トランザクション終了前にトランザクション内でエンキューまたはデキューされたメッセージを読み取ることはできないことに注意してください。

TPQDELIVERYQOS

このフラグが設定され、tpdequeue()の呼び出しが成功し、サービスの配信品質を持つメッセージがキューに登録されていた場合、フラグはctl->delivery_qosに格納されます。MQGETの呼び出しでMQPER_NOT_PERSISTENTの永続性が指定された場合、ctl->delivery_qosはTPQQOSNONPERSISTENTに設定されます。それ以外の場合は、TPQQOSPERSISTENTに設定されます。
注意: TPQWAITオプションはTMQUEUE_MQMに対するtpdequeueリクエストではサポートされません。

DATA

キューに置かれるデータ。

LEN

キューに置かれるデータの長さ。

FLAGS

メッセージのフラグ設定を定義します。tpdeキュー・リクエストでサポートされるフラグは次のとおりです。

TPNOTRAN

トランザクション・モードの呼び出し側からのメッセージは、呼び出し側と同じトランザクション内ではデキューされません。

  先頭に戻る       前  次