ActiveMQ:一条待处理消息但队列为空 - ActiveMQ 5.12.0

ActiveMQ: One Pending Message but Queue is empty - ActiveMQ 5.12.0

我遇到了与此处所述相同的问题: ActiveMQ: One Pending Message but Queue is empty.

Active MQ 显示队列的待处理消息,但当我单击它时它是空的。

我们不将消息保存在默认的 kaha 数据库中,而是保存在 Oracle 数据库中。我可以在 table ACTIVEMQ_MSGS.

中看到数据库中的未决消息

重新启动 activeMQ 后,所有客户端都按预期工作。在管理控制台中,我可以看到消息并且 java 消费者使用了消息。

提到的现有问题已通过更新到 ActiveMQ 5.7.0 得到解决。 我检查了 activeMQ 日志,但没有发现错误或警告。消息的生产者也没有改变。

知道我为什么会遇到这些问题吗?

问题现已解决。 我还在活跃的 mq 邮件列表中询问过: http://activemq.2283324.n4.nabble.com/One-Pending-Message-but-Queue-is-empty-ActiveMQ-5-12-0-td4715720.html.

  • 首先我们在客户端添加了这个方法调用:

    org.apache.camel.ConsumerTemplate.doneUoW(Exchange exchange)
    

    但最终还是没有解决问题

  • 此外,我们在活动 mq 中遇到了不可见的加载问题(healthStatus 为 "good",jvm 值看起来也不错)。
    • 我们在 activeMQ 中有太多队列用于记录旧消息。
    • 删除后一切正常。