3.8 キューからのメッセージの選択
キューから特定メッセージを取り出すには,メッセージ記述子のMsgIdおよびCorrelIdフィールドを使用します。バージョン2のMQMD構造体を指定する場合には,GroupIdも使用できます。
メッセージ識別子は,メッセージがキューに登録されるときにキューマネジャによって生成されます。キューマネジャはメッセージ記述子がユニークであるように保証します。しかし,アプリケーションでメッセージ記述子に特定の値を指定することができます。
ユーザは任意の相関識別子を使用できます。しかし,TP1/Message Queueでは,問い合わせメッセージのメッセージ識別子を,アプリケーションで応答メッセージのCorrelIdフィールドにコピーすることをお勧めします。
通常,グループの最初のメッセージがキューに登録されるときに,キューマネジャによってグループ識別子が生成されます。MsgSeqNumberフィールドはメッセージのグループ内での位置を識別し,Offsetフィールドはメッセージ内のセグメントを識別します。
一つ以上のメッセージが複数の選択基準を満たす場合には,キューのMsgDeliverySequence属性によって,メッセージがFIFOで選択されるのか優先度の順序で選択されるのかが決定されます。メッセージが同じ優先度を持つときはFIFOで選択されます。詳細については,「10.3 メッセージがキューから取り出される順序」を参照してください。