【发布时间】:2015-09-24 03:57:50
【问题描述】:
我已经执行了下面链接中提到的 hello world 程序。http://www.coderpanda.com/jms-example-using-apache-activemq/ 另外,我已经下载了 ActiveMQ jar 和相关文件。我也能够编译和运行所有的 java 文件。注意到接收器 java 文件编译成功,但是当接收器执行时,控制台上没有生成输出消息。未检索到发送到队列的消息。我可以看到 ActiveMQ 的 UI 上的消息计数在每次命中时都会增加(托管在本地主机 url 上),但放在队列上的消息尚未打印/检索。如果有的话,任何人都可以为发布者订阅者建议任何其他实现吗?或者你对 JMS Q 的看法......
【问题讨论】:
-
在 ActiveMQ UI 中检查,如果消息增加的队列附加了一个消费者,即“消费者数量”列,如果它在接收器运行时显示为 0,那么这意味着你的接收器是听错队列。如果是这样,请检查没有消费者大于 0 的队列,这可能是您的接收者正在侦听的队列
-
当我第一次运行 Sender.java 类时 -->Name=SAMPLEQUEUE 待处理消息数=0 消费者数=2 入队消息=1 出队消息=1
-
当我现在运行 Receiver.java 时,这是 ActiveMQ 控制台中的状态 Name=SAMPLEQUEUE 待处理消息数=0 消费者数=3 入队消息=1 出队消息=1
-
我如何知道接收方正在收听错误的队列?可以通过 ActiveMQ 的 UI 看到吗?如果是,如何?如您所见,我将“SAMPLEQUEUE”命名为队列名称。而当我此时调试“Message message = consumer.receive();”时,调试栏消失了……似乎它卡在了 receive() 函数中……有什么想法吗??
-
当你看到一个消息队列计数增加时,很明显消息被某个消费者成功消费了,并且在你的接收器运行时,为什么你的消费者队列中的计数增加了?是否有多个实例?或者你没有正确关闭连接