如何调试ActiveMQ客户端?

问题描述:

我是一个相当新的ActiveMQ用户,我正在寻找一种方法来获取队列连接的客户端上详细的调试信息。我的问题是这样的:我有一个服务器通过队列发送消息到客户端。使用与代理关联的管理网页,我可以验证以下内容:队列已创建,消费者与队列关联,消息已排队,消息已分派,分派队列大小为1,消息尚未出队。这个设置昨天工作,但今天神秘地停止了工作,即使我重新启动了activemq服务。 /var/log/activemq.log中的日志文件不包含任何有用的信息。如何调试ActiveMQ客户端?

在这一点上,我很难过;我假设配置存在某种问题,但从昨天开始没有变化。有人对我的下一步应该有什么建议吗?

首先在conf/log4j.properties中打开代理中的调试(甚至是跟踪)日志记录。

log4j.logger.org.apache.activemq = DEBUG

重新启动代理程序并重新运行方案。日志记录有望为您提供一些信息。 Jconsole也是监视正在运行的代理的有用工具。

您的客户是否使用任何消息过滤器?

+0

无消息过滤器,我真的不能控制代理配置,因为我不是根(尽管有用的信息)。有没有什么方法可以让客户端的低级别信息知道它是否收到了等待交付的字节? – 2011-03-31 16:24:13

您也可以启用远程调试,然后连接IDE。 启动远程调试执行

$ ACTIVEMQ_DEBUG=true bin/activemq

,然后启动远程调试器连接到端口5005个