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

Posted

技术标签:

【中文标题】ActiveMQ:一条待处理消息但队列为空【英文标题】:ActiveMQ: One Pending Message but Queue is empty 【发布时间】:2012-11-08 07:58:15 【问题描述】:

我对 ActiveMQ 有一个奇怪的问题。我有一个似乎有待处理消息的队列,但是当我打开队列时,没有消息。

这里有什么问题?真的有消息未决吗?我怎样才能恢复消息或至少看到内容?

待处理消息的屏幕截图:

打开队列时的屏幕截图,为空:

编辑: 刚发现ActiveMQ 5.6.0的这两个bug。这可能是问题的根源吗?

Incorrect reporting of pendingQueueSize of durable subs after reconnect with unacked

Problem in OrderPendingList can lead to message not being deliver after durable sub reconnect.

【问题讨论】:

【参考方案1】:

所以我很久以前就更新到 ActiveMQ 5.7.0 并且从那以后就没有这个错误了。所以我会说我的问题是由于这里的这些错误:

Incorrect reporting of pendingQueueSize of durable subs after reconnect with unacked

Problem in OrderPendingList can lead to message not being deliver after durable sub reconnect.

【讨论】:

这很奇怪,因为我在 ActiveMQ 5.10.2 版本中仍然存在这种问题。显然 JMX 计数器中有一个错误,但看不到任何关于此的参考。 这里也一样。运行 5.12.0,我也有这个错误。根据数据库,消息在队列中。所以错误似乎不是计数器而是队列内容的显示。使用 hawtio 我有同样的问题。 @ruffp:你找到解决方案了吗? 我重新询问了这个问题以获得更新的 ActiveMq 和其他详细信息:***.com/questions/38435610/…

以上是关于ActiveMQ:一条待处理消息但队列为空的主要内容,如果未能解决你的问题,请参考以下文章

同步 Spring ActiveMQ 接收器

关于 ActiveMQ 的消息模式

重复操作导致的线上问题

消息停留在ActiveMQ上

ActiveMQ---ActiveMQ原理分析之消息发送

ActiveMQ / JMS 消息处理程序测试