【问题标题】:Receiver of ActiveMQ: not able to retrieve whats in the QueueActiveMQ 的接收者:无法检索队列中的内容
【发布时间】: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() 函数中……有什么想法吗??
  • 当你看到一个消息队列计数增加时,很明显消息被某个消费者成功消费了,并且在你的接收器运行时,为什么你的消费者队列中的计数增加了?是否有多个实例?或者你没有正确关闭连接

标签: jms activemq


【解决方案1】:

Vihar 的答案是正确的。

当您看到消息出队计数增加时,很明显消息已被某个消费者成功消费,并且在您的接收器运行时,为什么您的消费者队列中的数量增加了?是否有多个实例?或者你没有正确关闭连接

我没有关闭连接,并且消费者在我多次运行接收时消耗了队列中的消息,我不知道为什么以及如何发生,直到我一次运行它,在队列中保持一个标签同一时间。

【讨论】:

    猜你喜欢
    • 2019-03-21
    • 2013-03-24
    • 2017-02-23
    • 2014-06-27
    • 2012-08-11
    • 2013-01-16
    • 2013-08-01
    • 2016-05-16
    • 1970-01-01
    相关资源
    最近更新 更多