I’m writing a simple Java application using MQ classes for Java with Eclipse.
Right now I’m able to browse a remote queue without removing the messages stored.
Here is the code of the reading cycle:
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()); } }
Main question: After the read message line and before moving the cursor to the next message how can I remove the message from the queue?
Secondary question: Eclispe is warning me that all the costants used for the options are deprecated; which are the correct ones to use?
Solution:
Here the solution I’m really looking for:
// set te cursor to remove the message from the queue gmo.options = CMQC.MQGMO_MSG_UNDER_CURSOR; queue.get(theMessage, gmo);
these lines have to be inserted in the question code
I’ve found it here: http://www.velocityreviews.com/forums/t124676-mq-series-messages-browse-and-delete.html
Advertisement
Answer
Solution:
Here the solution I’m really looking for:
// set te cursor to remove the message from the queue gmo.options = CMQC.MQGMO_MSG_UNDER_CURSOR; queue.get(theMessage, gmo);
these lines have to be inserted in the question code
I’ve found it here: http://www.velocityreviews.com/forums/t124676-mq-series-messages-browse-and-delete.html