Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue プログラム作成の手引


3.8 キューからのメッセージの選択

キューから特定メッセージを取り出すには,メッセージ記述子のMsgIdおよびCorrelIdフィールドを使用します。バージョン2のMQMD構造体を指定する場合には,GroupIdも使用できます。

メッセージ識別子は,メッセージがキューに登録されるときにキューマネジャによって生成されます。キューマネジャはメッセージ記述子がユニークであるように保証します。しかし,アプリケーションでメッセージ記述子に特定の値を指定することができます。

ユーザは任意の相関識別子を使用できます。しかし,TP1/Message Queueでは,問い合わせメッセージのメッセージ識別子を,アプリケーションで応答メッセージのCorrelIdフィールドにコピーすることをお勧めします。

通常,グループの最初のメッセージがキューに登録されるときに,キューマネジャによってグループ識別子が生成されます。MsgSeqNumberフィールドはメッセージのグループ内での位置を識別し,Offsetフィールドはメッセージ内のセグメントを識別します。

一つ以上のメッセージが複数の選択基準を満たす場合には,キューのMsgDeliverySequence属性によって,メッセージがFIFOで選択されるのか優先度の順序で選択されるのかが決定されます。メッセージが同じ優先度を持つときはFIFOで選択されます。詳細については,「10.3 メッセージがキューから取り出される順序」を参照してください。