I am using activemq from tomEE 1.5.2 probably not the latest
what version are you using? [] Leo On Tue, Jul 16, 2013 at 4:51 PM, Christian Posta <christian.po...@gmail.com> wrote: > This unit test works: > > > @Test > public void remove() throws JMSException, InterruptedException { > > boolean messageConsumed = false; > > Connection connection = null; > Session session = null; > try { > ConnectionFactory connectionFactory = new > ActiveMQConnectionFactory("vm://localhost?broker.persistent=false"); > connection = connectionFactory.createConnection(); > connection.start(); > > session = connection.createSession(false, > Session.AUTO_ACKNOWLEDGE); > Queue queue = session.createQueue("FOO"); > MessageProducer producer = session.createProducer(queue); > for (int i = 0; i < 5; i++) { > producer.send(session.createTextMessage("Hi" + i)); > } > > > QueueBrowser browser = session.createBrowser(queue); > Enumeration<?> messagesInQueue = browser.getEnumeration(); > String jmsMessageID = "nan"; > while (messagesInQueue.hasMoreElements()) { > Message queueMessage = (Message) > messagesInQueue.nextElement(); > System.out.println("Enqueued > " + > queueMessage.getJMSMessageID()); > jmsMessageID = queueMessage.getJMSMessageID(); > > } > > System.out.println("Trying to delete > " + jmsMessageID); > > > MessageConsumer consumer = > session.createConsumer(queue, "JMSMessageID='" + > jmsMessageID + "'"); > Message message = null; > while ((message = consumer.receive(500)) != null) { > System.out.println("Consumed > " + message); > } > > } finally { > if (session != null) > session.close(); > if (connection != null) > connection.close(); > } > > } > > > On Tue, Jul 16, 2013 at 3:41 PM, Leonardo K. Shikida <shik...@gmail.com>wrote: > >> Hi >> >> I've tried >> >> consumer.receive(1000) >> >> without success >> >> [] >> >> Leo >> >> >> On Tue, Jul 16, 2013 at 4:25 PM, Christian Posta >> <christian.po...@gmail.com> wrote: >> > Try giving a brief moment between creating your consumers and the call to >> > receiveNoWait(): >> > >> > MessageConsumer consumer = >> > session.createConsumer(queue, "JMSMessageID='" + >> > jmsMessageID + "'"); >> > Message message = null; >> > Thread.sleep(500); >> > while ((message = consumer.receiveNoWait()) != null) { >> > System.out.println("Consumed > " + message); >> > } >> > >> > Alternatively, use consumer.receive(500) >> > >> > >> > On Tue, Jul 16, 2013 at 11:10 AM, Leonardo K. Shikida <shik...@gmail.com >> >wrote: >> > >> >> Hi >> >> >> >> I am trying to remove (consume) a message from the queue, without >> success. >> >> >> >> Here's my code and the output >> >> >> >> public boolean remove(String jmsMessageID) throws JMSException{ >> >> >> >> boolean messageConsumed = false; >> >> >> >> Connection connection = null; >> >> Session session = null; >> >> try { >> >> ConnectionFactory connectionFactory = >> >> this.baseService.getConnectionFactory(); >> >> connection = connectionFactory.createConnection(); >> >> connection.start(); >> >> >> >> // Create a Session >> >> session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); >> >> >> >> QueueBrowser browser = >> session.createBrowser(this.baseService.getQueue()); >> >> Enumeration<?> messagesInQueue = browser.getEnumeration(); >> >> >> >> while (messagesInQueue.hasMoreElements()) { >> >> Message queueMessage = (Message) messagesInQueue.nextElement(); >> >> System.out.println("Enqueued > "+queueMessage.getJMSMessageID()); >> >> } >> >> >> >> System.out.println("Trying to delete > "+jmsMessageID); >> >> >> >> Queue queue = this.baseService.getQueue(); >> >> MessageConsumer consumer = >> >> session.createConsumer(queue,"JMSMessageID='"+jmsMessageID+"'"); >> >> Message message = null; >> >> while((message = consumer.receiveNoWait()) != null){ >> >> System.out.println("Consumed > "+message); >> >> messageConsumed = true; >> >> } >> >> >> >> } finally { >> >> if (session != null) >> >> session.close(); >> >> if (connection != null) >> >> connection.close(); >> >> } >> >> >> >> return messageConsumed; >> >> } >> >> >> >> >>>>>>> >> >> >> >> Enqueued > >> >> ID:7612866413.mydomain.com-58510-1373986917055-5:1:35:1:1 >> >> Enqueued > >> >> ID:7612866413.mydomain.com-58510-1373986917055-5:1:61:1:1 >> >> Enqueued > >> >> ID:7612866413.mydomain.com-58510-1373986917055-5:1:63:1:1 >> >> Trying to delete > >> >> ID:7612866413.mydomain.com-58510-1373986917055-5:1:63:1:1 >> >> >> >> (never enter into System.out.println("Consumed > "+message);) >> >> >> >> Am I missing something here? >> >> >> >> [] >> >> >> >> Leo >> >> >> > >> > >> > >> > -- >> > *Christian Posta* >> > http://www.christianposta.com/blog >> > twitter: @christianposta >> > > > > -- > *Christian Posta* > http://www.christianposta.com/blog > twitter: @christianposta