8

MQ classes for Java と Eclipse を使用して単純な Java アプリケーションを作成しています。

現在、保存されているメッセージを削除せずにリモート キューを参照できます。
読み取りサイクルのコードは次のとおりです。

MQQueueManager QMgr = new MQQueueManager(qManager); //<-- qManager is a String with the QMgr name

int openOptions = MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INPUT_SHARED | MQC.MQOO_BROWSE;  

MQQueue queue = QMgr.accessQueue(queueName, openOptions);

MQMessage theMessage    = new MQMessage();
MQGetMessageOptions gmo = new MQGetMessageOptions();
    gmo.options=MQC.MQGMO_WAIT | MQC.MQGMO_BROWSE_FIRST;
    gmo.matchOptions=MQC.MQMO_NONE;
    gmo.waitInterval=5000;

boolean thereAreMessages=true;
while(thereAreMessages){
    try{
        //read the message          
        queue.get(theMessage,gmo);  
        //print the text            
        String msgText = theMessage.readString(theMessage.getMessageLength());
        System.out.println("msg text: "+msgText);

                 // <--- Solution code Here

        //move cursor to the next message               
        gmo.options = MQC.MQGMO_WAIT | MQC.MQGMO_BROWSE_NEXT;

    }catch(MQException e){

        if(e.reasonCode == e.MQRC_NO_MSG_AVAILABLE) {
            System.out.println("no more message available or retrived");
        }

        thereAreMessages=false;
    } catch (IOException e) {
        System.out.println("ERROR: "+e.getMessage());
    }
}

主な質問: メッセージ行を読んだ後、カーソルを次のメッセージに移動する前に、キューからメッセージを削除するにはどうすればよいですか?

二次的な質問: Eclipse は、オプションに使用されているすべてのコスタントが非推奨であると警告しています。どちらを使用するのが正しいですか?


解決:

ここで私が本当に探している解決策:

// set te cursor to remove the message from the queue
gmo.options = CMQC.MQGMO_MSG_UNDER_CURSOR;
queue.get(theMessage, gmo);

これらの行は質問コードに挿入する必要があります

ここで見つけました:http://www.velocityreviews.com/forums/t124676-mq-series-messages-browse-and-delete.html

4

2 に答える 2

10

解決:

ここで私が本当に探している解決策:

// set te cursor to remove the message from the queue
gmo.options = CMQC.MQGMO_MSG_UNDER_CURSOR;
queue.get(theMessage, gmo);

これらの行は質問コードに挿入する必要があります

ここで見つけました:http://www.velocityreviews.com/forums/t124676-mq-series-messages-browse-and-delete.html

于 2012-09-03T05:58:46.257 に答える
-1

メッセージを削除するには、MQ のドキュメントに記載されている手順に従います。

非推奨の定数値については、Javadocを再度確認してください。推奨される方法が説明されています。

MQC.MQOO_INPUT_SHARED --> CMQC.MQOO_INPUT_SHARED
于 2012-09-02T16:58:41.680 に答える