Hitachi

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


10.8.2 メッセージ長が不明なときの検索

メッセージ長が不明なときにメッセージを検索し,かつ,MsgId,CorrelId,またはGroupIdフィールドを使用したくない場合には,MQGMO_BROWSE_MSG_UNDER_CURSORを使用できます。

手順を次に示します。

  1. MQGET命令を次に示す状態で発行します。

    • MQGMO_BROWSE_FIRSTまたはMQGMO_BROWSE_NEXTを指定

    • MQGMO_ACCEPT_TRUNCATED_MSGを指定

    • バッファ長に0を指定

    注意

    他アプリケーションで同じメッセージを取り出す場合には,MQGMO_LOCKオプションの使用も検討してください。MQRC_TRUNCATED_MSG_ACCEPTEDが返されるようにしてください。

  2. 必要な領域を確保するために,MQGET命令で返されたDataLengthパラメタを使用してください。

  3. MQGMO_BROWSE_MSG_UNDER_CURSORでMQGET命令を発行してください。

検索カーソルで示されるメッセージは,取り出された最後のメッセージです。検索カーソルは移動しません。ユーザはMQGMO_LOCKを使用してメッセージを排他状態にしたり,MQGMO_UNLOCKで排他状態を解除したりできます。

キューのオープン後にMQGMO_BROWSE_FIRSTまたはMQGMO_BROWSE_NEXTのMQGET命令が発行されていない場合は,命令は失敗します。