4.4.2 tpdequeueリクエストの処理
tpdequeueリクエストの構文は次のとおりです:
tpdequeue (qspace, qname, qctl, data, len, flags)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 - メッセージのフラグ設定を定義します。
tpdequeueリクエストでサポートされるフラグは次のとおりです: -
TPNOTRAN - トランザクション・モードの呼出し側からのメッセージは、呼出し側と同じトランザクション内ではデキューされません。
-