I have a problem with browser. I coded the following sample as a test case to see how browser works.
@Test public void testBrowse() throws NamingException, JMSException { InitialContext ic = new InitialContext(); String queueAddress = "/queue/" + QueueEnum.YospaceVerificationQueue; HornetQConnectionFactory factory = (HornetQConnectionFactory)ic.lookup("/ConnectionFactory"); Connection connection = factory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); QueueBrowser browser = session.createBrowser((Queue) ic.lookup(queueAddress)); Enumeration e = browser.getEnumeration(); while(e.hasMoreElements()){ Object o = e.nextElement(); System.out.println(o); System.out.println(o.getClass()); HornetQObjectMessage message = (HornetQObjectMessage) o; MSBMessage msg = (MSBMessage) message.getObject(); System.out.println(msg.getMedia().getOriginalFileName() ); browser.close(); connection.close(); } }
I have one sinngle message in the queue and I can confirm it through the JMX browser, but the code doesn't show it usually. I said usually because sometimes it does.
Is there any mistake in the code?
What is the best way to look inside a queue? Maybe I should be looking at a Jmx solution?
thanks for your help in advance.