I list the queues and messages from each queue. Below is my code. But QueueBrowser does not receive messages correctly.
Let's say I have a queue called TestQueue that has 1000 messages.
The first time I run my program, it shows only 200 messages. second - 400 third - 600 fourth - 800 fifth - 1000
Can you tell me how to fix this problem?
ConnectionFactory out = new ActiveMQConnectionFactory("tcp://localhost:61616?jms.prefetchPolicy.all=10000"); ActiveMQConnection connection = (ActiveMQConnection) out.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Set<ActiveMQQueue> amqs = connection.getDestinationSource().getQueues(); Iterator<ActiveMQQueue> queues = amqs.iterator(); while ( queues.hasNext() ) { ActiveMQQueue queue_t = aqueues.next(); String q_name = queue_t.getPhysicalName(); List<ActiveMQMessage> msgList = ((ActiveMQSession) session).getUnconsumedMessages(); System.out.println( "\nQueue = " + q_name); QueueBrowser queueBrowser = session.createBrowser(queue_t); Enumeration e = queueBrowser.getEnumeration(); int numMsgs = 0; while(e.hasMoreElements()) { Message message = (Message) e.nextElement(); numMsgs++; } System.out.println("No of messages = " + numMsgs); queueBrowser.close(); } session.close(); connection.close();
java jms activemq message-queue
Lwin Htoo Ko
source share