JMS QueueBrowser Example
A point-to-point messaging queue contains messages to be consumed by clients interested in the specific destination queue. If one wants to simply monitor the messages without actually consuming them then getting hold of QueueObject
will allow one to peek ahead at the pending messages.
In this article, we will see an examples of QueueBrowser
object.
1. Dependencies
In order to send and receive JMS messages to and from a JMS message broker, we need to include the message service library. In this example we are using activeMq so our pom.xml will have dependencies related to spring as well as activeMQ.
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.javacodegeeks.jms</groupId> <artifactId>springJmsQueue</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.12.0</version> </dependency> </dependencies> </project>
2. Starting the JMS Provider
JMS is a specification and not an actual product. A JMS provider such as ActiveMQ, IBM, Progress Software, or even Sun provides a messaging product that implements the specification. In our examples, we will be using ActiveMQ as JMS Provider. Getting started with ActiveMQ isn’t difficult. You simply need to start up the broker and make sure that it’s capable of accepting connections and sending messages.
In the below example, the broker is started as a server listening on port 61616. The JMS Clients willing to connect to the broker will be using the TCP protocol (tcp://localhost:61616). Since the broker and JMS clients are running in the same machine, we have used localhost.
BrokerLauncehr:
package com.javacodegeeks.jms; import java.net.URI; import java.net.URISyntaxException; import org.apache.activemq.broker.BrokerFactory; import org.apache.activemq.broker.BrokerService; public class BrokerLauncher { public static void main(String[] args) throws URISyntaxException, Exception { BrokerService broker = BrokerFactory.createBroker(new URI( "broker:(tcp://localhost:61616)")); broker.start(); } }
Output:
INFO | JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi INFO | PListStore:[C:\javacodegeeks_ws\jmsQueueBrowserExample\activemq-data\localhost\tmp_storage] started INFO | Using Persistence Adapter: KahaDBPersistenceAdapter[C:\javacodegeeks_ws\jmsQueueBrowserExample\activemq-data\localhost\KahaDB] INFO | Apache ActiveMQ 5.12.0 (localhost, ID:INMAA1-L1005-57531-1450761099016-0:1) is starting INFO | Listening for connections at: tcp://127.0.0.1:61616 INFO | Connector tcp://127.0.0.1:61616 started INFO | Apache ActiveMQ 5.12.0 (localhost, ID:INMAA1-L1005-57531-1450761099016-0:1) started INFO | For help or more information please see: http://activemq.apache.org WARN | Store limit is 102400 mb (current store usage is 0 mb). The data directory: C:\javacodegeeks_ws\jmsQueueBrowserExample\activemq-data\localhost\KahaDB only has 30295 mb of usable space - resetting to maximum available disk space: 30295 mb WARN | Temporary Store limit is 51200 mb, whilst the temporary data directory: C:\javacodegeeks_ws\jmsQueueBrowserExample\activemq-data\localhost\tmp_storage only has 30295 mb of usable space - resetting to maximum available 30295 mb.
3. Creating QueueBrowser
A QueueBrowser can be useful for monitoring the contents of a queue from an administration tool, or for browsing through multiple messages to locate a specific message that one is interested in.
A QueueBrowser
is created using createBrowser()
methods in Session
object. It needs the Queue
object which needs to be browsed. If one wants to further filter then a message selector can also be passed in.
A message selector holds an expression meant for filtering messages. Only those messages will be delivered whose properties match the message selector expression.
Session:
public interface Session extends Runnable { ... QueueBrowser createBrowser(Queue queue) throws JMSException; QueueBrowser createBrowser(Queue queue, String messageSelector) throws JMSException; ... }
QueueBrowser browser = session.createBrowser(queue);
4. QueueBrowser API
A queue browser implements the QueueBrowser
interface.
QueueBrowser:
public interface QueueBrowser { Queue getQueue() throws JMSException; String getMessageSelector() throws JMSException; Enumeration getEnumeration() throws JMSException; void close() throws JMSException; }
getQueue()
– returns the queue that needs to be browsedgetMessageSelector()
– returns the message selector expression that is used to filter the messages in queue.getEnumeration()
returns the enumeration object that will be used to iterate through the queueclose()
– close method should be
called whenever a browser is no longer needed to free any resources that the JMS provider may
have allocated on behalf of this browser.
5. QueueBrowser Example
In order to browse the messages, we need to call createQueueBrowser( )
on Session
object. We passed in the Queue
object that needs to be browsed.
The QueueBrowser
object contains a java.util.Enumeration
which is used to iterate through the queue.
We will send some message to the queue and then create a queue browser object to enumerate through the messages. Next, we will close the queue browser object. Finally, we will receive all the messages from the queue.
JmsQueueBrowseExample:
package com.javacodegeeks.jms; import java.net.URISyntaxException; import java.util.Enumeration; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.QueueBrowser; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory; public class JmsQueueBrowseExample { public static void main(String[] args) throws URISyntaxException, Exception { Connection connection = null; try { // Producer ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( "tcp://localhost:61616"); connection = connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue("browseQueue"); MessageProducer producer = session.createProducer(queue); String task = "Task"; for (int i = 0; i < 10; i++) { String payload = task + i; Message msg = session.createTextMessage(payload); System.out.println("Sending text '" + payload + "'"); producer.send(msg); } MessageConsumer consumer = session.createConsumer(queue); connection.start(); System.out.println("Browse through the elements in queue"); QueueBrowser browser = session.createBrowser(queue); Enumeration e = browser.getEnumeration(); while (e.hasMoreElements()) { TextMessage message = (TextMessage) e.nextElement(); System.out.println("Browse [" + message.getText() + "]"); } System.out.println("Done"); browser.close(); for (int i = 0; i < 10; i++) { TextMessage textMsg = (TextMessage) consumer.receive(); System.out.println(textMsg); System.out.println("Received: " + textMsg.getText()); } session.close(); } finally { if (connection != null) { connection.close(); } } } }
Output:
Sending text 'Task0' Sending text 'Task1' Sending text 'Task2' Sending text 'Task3' Sending text 'Task4' Sending text 'Task5' Sending text 'Task6' Sending text 'Task7' Sending text 'Task8' Sending text 'Task9' Browse through the elements in queue Browse [Task0] Browse [Task1] Browse [Task2] Browse [Task3] Browse [Task4] Browse [Task5] Browse [Task6] Browse [Task7] Browse [Task8] Browse [Task9] Done ActiveMQTextMessage {commandId = 5, responseRequired = true, messageId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1, destination = queue://browseQueue, transactionId = null, expiration = 0, timestamp = 1450762226017, arrival = 0, brokerInTime = 1450762226018, brokerOutTime = 1450762226054, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@6b71769e, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task0} Received: Task0 ActiveMQTextMessage {commandId = 6, responseRequired = true, messageId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1:2, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1, destination = queue://browseQueue, transactionId = null, expiration = 0, timestamp = 1450762226025, arrival = 0, brokerInTime = 1450762226025, brokerOutTime = 1450762226054, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@2752f6e2, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task1} Received: Task1 ActiveMQTextMessage {commandId = 7, responseRequired = true, messageId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1:3, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1, destination = queue://browseQueue, transactionId = null, expiration = 0, timestamp = 1450762226027, arrival = 0, brokerInTime = 1450762226028, brokerOutTime = 1450762226054, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@e580929, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task2} Received: Task2 ActiveMQTextMessage {commandId = 8, responseRequired = true, messageId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1:4, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1, destination = queue://browseQueue, transactionId = null, expiration = 0, timestamp = 1450762226030, arrival = 0, brokerInTime = 1450762226030, brokerOutTime = 1450762226054, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@1cd072a9, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task3} Received: Task3 ActiveMQTextMessage {commandId = 9, responseRequired = true, messageId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1:5, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1, destination = queue://browseQueue, transactionId = null, expiration = 0, timestamp = 1450762226033, arrival = 0, brokerInTime = 1450762226033, brokerOutTime = 1450762226054, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@7c75222b, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task4} Received: Task4 ActiveMQTextMessage {commandId = 10, responseRequired = true, messageId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1:6, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1, destination = queue://browseQueue, transactionId = null, expiration = 0, timestamp = 1450762226036, arrival = 0, brokerInTime = 1450762226036, brokerOutTime = 1450762226054, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@4c203ea1, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task5} Received: Task5 ActiveMQTextMessage {commandId = 11, responseRequired = true, messageId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1:7, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1, destination = queue://browseQueue, transactionId = null, expiration = 0, timestamp = 1450762226039, arrival = 0, brokerInTime = 1450762226039, brokerOutTime = 1450762226054, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@27f674d, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task6} Received: Task6 ActiveMQTextMessage {commandId = 12, responseRequired = true, messageId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1:8, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1, destination = queue://browseQueue, transactionId = null, expiration = 0, timestamp = 1450762226042, arrival = 0, brokerInTime = 1450762226042, brokerOutTime = 1450762226054, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@1d251891, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task7} Received: Task7 ActiveMQTextMessage {commandId = 13, responseRequired = true, messageId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1:9, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1, destination = queue://browseQueue, transactionId = null, expiration = 0, timestamp = 1450762226045, arrival = 0, brokerInTime = 1450762226045, brokerOutTime = 1450762226054, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@48140564, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task8} Received: Task8 ActiveMQTextMessage {commandId = 14, responseRequired = true, messageId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1:10, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-58661-1450762225866-1:1:1:1, destination = queue://browseQueue, transactionId = null, expiration = 0, timestamp = 1450762226047, arrival = 0, brokerInTime = 1450762226047, brokerOutTime = 1450762226054, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@58ceff1, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task9} Received: Task9
6. QueueBrowser Example with Message Selector
In this example we will see the overloaded version of createQueueBrowser()
method that takes in Queue
as well as messageSelector
.
A message selector holds an expression meant for filtering messages. Only those messages will be delivered whose properties match the message selector expression.
For example sake, we will set ‘sequence’ property to ‘even’ for the even sequenced messages.
for (int i = 0; i < 10; i++) { String payload = task + i; Message msg = session.createTextMessage(payload); System.out.println("Sending text '" + payload + "'"); if (i % 2 == 0) { msg.setStringProperty("sequence", "even"); } producer.send(msg); }
Suppose we only want to browse the even sequenced messages then the message selector would be "sequence = 'even'"
.
We will create QueueBrowser
using this message selector.
QueueBrowser browser = session.createBrowser(queue, "sequence = 'even'");
JmsBrowseQueueMessageSelectorExample:
package com.javacodegeeks.jms; import java.net.URISyntaxException; import java.util.Enumeration; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.QueueBrowser; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory; public class JmsQueueBrowserWithMessageSelectorExample { public static void main(String[] args) throws URISyntaxException, Exception { Connection connection = null; try { // Producer ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( "tcp://localhost:61616"); connection = connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue("customerQueue"); MessageProducer producer = session.createProducer(queue); String task = "Task"; for (int i = 0; i < 10; i++) { String payload = task + i; Message msg = session.createTextMessage(payload); System.out.println("Sending text '" + payload + "'"); if (i % 2 == 0) { msg.setStringProperty("sequence", "even"); } producer.send(msg); } MessageConsumer consumer = session.createConsumer(queue); connection.start(); System.out.println("Browse through the elements in queue"); QueueBrowser browser = session.createBrowser(queue, "sequence = 'even'"); Enumeration e = browser.getEnumeration(); while (e.hasMoreElements()) { TextMessage message = (TextMessage) e.nextElement(); System.out.println("Browse [" + message.getText() + "]"); } System.out.println("Done"); browser.close(); for (int i = 0; i < 10; i++) { TextMessage textMsg = (TextMessage) consumer.receive(); System.out.println(textMsg); System.out.println("Received: " + textMsg.getText()); } session.close(); } finally { if (connection != null) { connection.close(); } } } }
A you can see only the even sequenced messages show up in the enumeration object.
Output:
Sending text 'Task0' Sending text 'Task1' Sending text 'Task2' Sending text 'Task3' Sending text 'Task4' Sending text 'Task5' Sending text 'Task6' Sending text 'Task7' Sending text 'Task8' Sending text 'Task9' Browse through the elements in queue Browse [Task0] Browse [Task2] Browse [Task4] Browse [Task6] Browse [Task8] Done ActiveMQTextMessage {commandId = 7, responseRequired = true, messageId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1:3, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1, destination = queue://customerQueue, transactionId = null, expiration = 0, timestamp = 1450761421106, arrival = 0, brokerInTime = 1450761421106, brokerOutTime = 1450761525026, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@5ebec15, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task2} Received: Task2 ActiveMQTextMessage {commandId = 8, responseRequired = true, messageId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1:4, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1, destination = queue://customerQueue, transactionId = null, expiration = 0, timestamp = 1450761421109, arrival = 0, brokerInTime = 1450761421109, brokerOutTime = 1450761525026, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@21bcffb5, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task3} Received: Task3 ActiveMQTextMessage {commandId = 9, responseRequired = true, messageId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1:5, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1, destination = queue://customerQueue, transactionId = null, expiration = 0, timestamp = 1450761421111, arrival = 0, brokerInTime = 1450761421112, brokerOutTime = 1450761525027, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@380fb434, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task4} Received: Task4 ActiveMQTextMessage {commandId = 10, responseRequired = true, messageId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1:6, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1, destination = queue://customerQueue, transactionId = null, expiration = 0, timestamp = 1450761421114, arrival = 0, brokerInTime = 1450761421114, brokerOutTime = 1450761525027, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@668bc3d5, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task5} Received: Task5 ActiveMQTextMessage {commandId = 11, responseRequired = true, messageId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1:7, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1, destination = queue://customerQueue, transactionId = null, expiration = 0, timestamp = 1450761421117, arrival = 0, brokerInTime = 1450761421117, brokerOutTime = 1450761525027, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@3cda1055, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task6} Received: Task6 ActiveMQTextMessage {commandId = 12, responseRequired = true, messageId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1:8, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1, destination = queue://customerQueue, transactionId = null, expiration = 0, timestamp = 1450761421120, arrival = 0, brokerInTime = 1450761421120, brokerOutTime = 1450761525028, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@7a5d012c, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task7} Received: Task7 ActiveMQTextMessage {commandId = 13, responseRequired = true, messageId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1:9, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1, destination = queue://customerQueue, transactionId = null, expiration = 0, timestamp = 1450761421123, arrival = 0, brokerInTime = 1450761421123, brokerOutTime = 1450761525028, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@3fb6a447, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task8} Received: Task8 ActiveMQTextMessage {commandId = 14, responseRequired = true, messageId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1:10, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-57862-1450761420954-1:1:1:1, destination = queue://customerQueue, transactionId = null, expiration = 0, timestamp = 1450761421126, arrival = 0, brokerInTime = 1450761421126, brokerOutTime = 1450761525028, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@79b4d0f, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task9} Received: Task9 ActiveMQTextMessage {commandId = 5, responseRequired = true, messageId = ID:INMAA1-L1005-57943-1450761507228-1:1:1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-57943-1450761507228-1:1:1:1, destination = queue://customerQueue, transactionId = null, expiration = 0, timestamp = 1450761507375, arrival = 0, brokerInTime = 1450761507376, brokerOutTime = 1450761525028, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@5f2050f6, marshalledProperties = org.apache.activemq.util.ByteSequence@3b81a1bc, dataStructure = null, redeliveryCounter = 0, size = 0, properties = {sequence=even}, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task0} Received: Task0 ActiveMQTextMessage {commandId = 6, responseRequired = true, messageId = ID:INMAA1-L1005-57943-1450761507228-1:1:1:1:2, originalDestination = null, originalTransactionId = null, producerId = ID:INMAA1-L1005-57943-1450761507228-1:1:1:1, destination = queue://customerQueue, transactionId = null, expiration = 0, timestamp = 1450761507380, arrival = 0, brokerInTime = 1450761507380, brokerOutTime = 1450761525028, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@64616ca2, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = Task1} Received: Task1
7. Download the Eclipse Project
This was an example about JMS QueueBrowser object.
You can download the full source code of this example here: jmsQueueBrowserExample.zip