8

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

4

3 回答 3

9

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

ActiveMQ 控制台工具

JMS 队列浏览器 API

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 回答