可以以某种方式查看AMQ主题的内容吗?

时间:2012-06-27 12:42:26

标签: java jms activemq

我正在尝试使用activemq-admin查看主题的内容。

这就是我正在尝试的:

./activemq-admin browse --amqurl tcp://localhost:61616 my.topic

这是我得到的输出:

Java Runtime: Sun Microsystems Inc. 1.6.0_24 /usr/lib/jvm/java-6-sun-1.6.0.24/jre
Heap sizes: current=62848k  free=62190k  max=932096k
JVM args: -Dactivemq.classpath=/home/pc/dev/apache-activemq-5.3.1/conf; -Dactivemq.home=/home/pc/dev/apache-activemq-5.3.1 -Dactivemq.base=/home/pc/dev/apache-activemq-5.3.1
ACTIVEMQ_HOME: /home/pc/dev/apache-activemq-5.3.1
ACTIVEMQ_BASE: /home/pc/dev/apache-activemq-5.3.1

这不是我想要的。我希望以某种方式以原始形式看到队列中的消息。这可能吗?

谢谢,

3 个答案:

答案 0 :(得分:4)

由于主题的性质,您无法浏览主题的内容。消息被发送,如果有任何订阅者,则每个消息都会在该时间点收到消息。通常不保留消息(这里有一些不相关的例外)。

但是,有时出于调试目的,查看发送到主题的消息很有用。最简单的方法是设置virtual destination,将发送到主题的每条消息复制到队列中。

<destinationInterceptors>
    <virtualDestinationInterceptor>
        <virtualDestinations>
            <compositeTopic name="events" forwardOnly="false">
                <forwardTo>
                    <queue physicalName="events.thatHaveHappened" />
                </forwardTo>
            </compositeTopic>
        </virtualDestinations>
    </virtualDestinationInterceptor>
</destinationInterceptors>

然后,您可以通过JMX或Web控制台浏览队列。

答案 1 :(得分:1)

您可以使用web console

查看队列中邮件的内容

enter image description here

答案 2 :(得分:1)

此第三方工具允许您订阅主题并检查主题消息:

http://sourceforge.net/projects/activemqbrowser/

连接到服务器,然后订阅您想要的主题。我可以查看消息详细信息和有效负载。