10.8.2 メッセージ長が不明なときの検索
メッセージ長が不明なときにメッセージを検索し,かつ,MsgId,CorrelId,またはGroupIdフィールドを使用したくない場合には,MQGMO_BROWSE_MSG_UNDER_CURSORを使用できます。
手順を次に示します。
-
MQGET命令を次に示す状態で発行します。
-
MQGMO_BROWSE_FIRSTまたはMQGMO_BROWSE_NEXTを指定
-
MQGMO_ACCEPT_TRUNCATED_MSGを指定
-
バッファ長に0を指定
- 注意
-
他アプリケーションで同じメッセージを取り出す場合には,MQGMO_LOCKオプションの使用も検討してください。MQRC_TRUNCATED_MSG_ACCEPTEDが返されるようにしてください。
-
-
必要な領域を確保するために,MQGET命令で返されたDataLengthパラメタを使用してください。
-
MQGMO_BROWSE_MSG_UNDER_CURSORでMQGET命令を発行してください。
検索カーソルで示されるメッセージは,取り出された最後のメッセージです。検索カーソルは移動しません。ユーザはMQGMO_LOCKを使用してメッセージを排他状態にしたり,MQGMO_UNLOCKで排他状態を解除したりできます。
キューのオープン後にMQGMO_BROWSE_FIRSTまたはMQGMO_BROWSE_NEXTのMQGET命令が発行されていない場合は,命令は失敗します。