OpenTP1 メッセージキューイング機能 TP1/Message Queue プログラム作成の手引
キューから特定メッセージを取り出すには,MQMD構造体のMsgIdおよびCorrelIdフィールドを使用してください。しかし,アプリケーションで明示的にこれらのフィールドを設定できるので,ユーザが指定した値でユニークなメッセージを識別できないこともあります。MsgIdおよびCorrelIdフィールドを指定する取り出しについて,次の表に示します。MQGET命令のGetMsgOptsパラメタにMQGMO_MSG_UNDER_CURSORを指定する場合,これらのフィールドは無視されます。
表10-1 MsgIdおよびCorrelIdフィールドを指定する取り出し
| 取り出されるメッセージ | MsgId | CorrelId |
|---|---|---|
| キューの最初のメッセージ | MQMI_NONE | MQCI_NONE |
| MsgIdに合う最初のメッセージ | 0以外 | MQCI_NONE |
| CorrelIdに合う最初のメッセージ | MQMI_NONE | 0以外 |
| MsgIdとCorrelIdの両方に合う最初のメッセージ | 0以外 | 0以外 |
それぞれ,選択基準を満たす最初のメッセージが取り出されます。MQGMO_BROWSE_NEXTを指定する場合は,選択基準を満たす次のメッセージが取り出されます。
戻り時にMQGET命令はメッセージに関連するMsgIdとCorrelIdフィールドを設定します。
MQMD構造体のVersionフィールドに2を設定する場合は,GroupId,MsgSeqNumber,およびOffsetフィールドを使用できます。一致オプションと取り出されるメッセージについて,次の表に示します。
表10-2 一致オプションと取り出されるメッセージ
| 取り出されるメッセージ | 一致オプション |
|---|---|
| キューの最初のメッセージ | MQMO_NONE |
| MsgIdに合う最初のメッセージ | MQMO_MATCH_MSG_ID |
| CorrelIdに合う最初のメッセージ | MQMO_MATCH_CORREL_ID |
| GroupIdに合う最初のメッセージ | MQMO_MATCH_GROUP_ID |
| MsgSeqNumberに合う最初のメッセージ | MQMO_MATCH_MSG_SEQ_NUMBER |
| Offsetに合う最初のメッセージ | MQMO_MATCH_OFFSET |
All Rights Reserved. Copyright (C) 2006, Hitachi, Ltd.
(C) Copyright International Business Machines Corporation 1993, 2003. All rights reserved.