我想知道是否有任何方法可以读取 jms 和 actibemq 消息而不使用它??我知道可以从队列中消费消息,但我仍然想问这个问题。!!
问问题
20645 次
3 回答
9
您可以通过 JMS QueueBrowser 浏览队列上的消息,或者在 ActiveMQ 中,您可以通过 JMX 或使用命令行工具浏览内容:
于 2013-01-09T21:17:53.170 回答
5
您需要使用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
}
于 2016-12-14T12:17:07.797 回答
2
另一种选择是“消费”消息,但只是在事务中,然后当你完成后,将其回滚,但浏览器可能会更好,因为这就是“它的用途”。
如果您只是在寻找特定的消息,并且手册会这样做,那么您可以通过单击 UI 中的“RSS 提要”按钮来查看(我认为至少是部分)activemq 的消息及其内容。这基本上将它们全部转储到屏幕上。“原子提要”选项的加载速度似乎比“RSS”一个 FWIW 更快。
于 2016-06-02T16:47:28.217 回答