如何在不消耗它们的情况下读取JMS消息 - 使用ActiveMQ

use*_*202 6 activemq-classic jms

我想知道是否有任何方法可以读取jms和actibemq消息而不消耗它?我知道消息可以从队列中消耗,但我仍然想问这个问题.!!

Tim*_*ish 7

您可以通过JMS QueueBrowser浏览队列上的消息,或者在ActiveMQ中,您可以通过JMX或使用命令行工具浏览内容:

ActiveMQ控制台工具

JMS QueueBrowser API

ActiveMQ JMX


小智 6

您需要使用该类QueueBrowser来执行此操作,而不是使用消息消费者:

ConnectionFactory connectionFactory = 
    new ActiveMQConnectionFactory("tcp://127.0.0.1:61616"); 
Connection connection = 
    connectionFactory.createConnection("admin","admin");
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue("Test");
QueueBrowser queueBrowser = session.createBrowser(queue);
Enumeration msgs = queueBrowser.getEnumeration();
while (msgs.hasMoreElements()) {
    //do your things here
}
Run Code Online (Sandbox Code Playgroud)