Trunk. What version is in tomEE 1.5.2?
On Tue, Jul 16, 2013 at 3:56 PM, Leonardo K. Shikida <shik...@gmail.com>wrote: > 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 > -- *Christian Posta* http://www.christianposta.com/blog twitter: @christianposta