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