我想知道是否有任何方法可以读取jms和actibemq消息而不消耗它?我知道消息可以从队列中消费,但我仍然想问这个问题。!!
答案 0 :(得分:5)
您可以通过JMS QueueBrowser浏览队列上的消息,或者在ActiveMQ中,您可以通过JMX或使用命令行工具浏览内容:
答案 1 :(得分:3)
您需要使用QueueBrowser
类来执行此操作,而不是使用Message-consumers:
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
}
答案 2 :(得分:1)
另一种选择是“消费”消息,但只是在交易中,然后当你完成后,将其回滚,但浏览器可能会更好,因为它是“它的用途”。
如果您只是在寻找特定的消息,并且手册会这样做,您可以通过单击“RSS提要”按钮查看(我认为所有,至少部分内容)有关activemq的消息及其内容。用户界面。它基本上将它们全部转储到屏幕上。 “原子进给”选项似乎加载速度比“RSS”一个FWIW快。