I would like after do something consume/delete/take out the message from queue, but I can't ....
I have 4 messages on queue and I want consume just one
QueueConnectionFactory factory = (QueueConnectionFactory) getInitialContext().lookup("/ConnectionFactory");//java:/ConnectionFactory
Queue queue = (Queue) getInitialContext().lookup("queue/MyQueue");
connection = factory.createQueueConnection();
session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
QueueBrowser queueBrowser = session.createBrowser(queue);
Enumeration<ObjectMessage> messages = queueBrowser.getEnumeration();
while (messages.hasMoreElements()) {
ObjectMessage objectMessage = (ObjectMessage) messages.nextElement();
Person p = (Person) objectMessage.getObject();
System.err.println(p.getId());
//do something....
//* after do something take out the message from queue
}
* I tried code below, but i got error
QueueReceiver receiver = session.createReceiver(queue, "JMSMessageID="+objectMessage.getJMSMessageID());
MessageConsumer consumer = session.createConsumer(queue, "JMSMessageID="+objectMessage.getJMSMessageID());
MessageConsumer consumer = session.createConsumer(queue, "JMSMessageID="+objectMessage.getJMSMessageID());
I forgot
connection.start()
Message message = consumer.receive();