Java ActiveMQ未将消息从队列中移除

Java ActiveMQ未将消息从队列中移除,java,jms,activemq,nms,Java,Jms,Activemq,Nms,我最近将一台服务器从ActiveMQ从5.8升级到了最新版本(5.11.1)。从那以后,我偶尔注意到消息会堆积在特定队列上而不会被删除 我们的架构有一个生产者,一个消费者。我可以看到消费者仍在连接,但来自生产者的消息越来越多。我的解决方案是通过web控制台删除队列。在这之后,我立即看到消费者重新连接,消息再次开始被处理 如果相关,在这种情况下,生产者在.NET上运行NMS,消费者在Java 1.7上运行JMS。当消费者连接到队列时,请从web控制台检查队列中未提交的消息数。如果大于零且长时间不变

我最近将一台服务器从ActiveMQ从5.8升级到了最新版本(5.11.1)。从那以后,我偶尔注意到消息会堆积在特定队列上而不会被删除

我们的架构有一个生产者,一个消费者。我可以看到消费者仍在连接,但来自生产者的消息越来越多。我的解决方案是通过web控制台删除队列。在这之后,我立即看到消费者重新连接,消息再次开始被处理


如果相关,在这种情况下,生产者在.NET上运行NMS,消费者在Java 1.7上运行JMS。

当消费者连接到队列时,请从web控制台检查队列中未提交的消息数。如果大于零且长时间不变,则表示您的消费者在阅读输入消息时遇到问题


如果上述情况属实,可能是因为生产者发送的文件不是jms投诉。

我最近在创建一个实用程序以将所有消息从一个队列移动到另一个队列时遇到了这个问题

我可以看到我连接到我的AMQ实例,我可以看到我创建的侦听器,但它们不会从挂起移动到我的侦听器


我忘记在队列连接上调用Start()

如果您断开/重新连接耗电元件,它会工作吗?删除队列听起来是一个“暴力修复”。@次优的好问题,我实际上不确定答案。我在应用程序中没有任何钩子可以在应用程序运行时断开/重新连接使用者。我也不知道有什么方法可以检测它是否处于这种停滞状态,因为从它的角度来看,消息就是不进来。一旦下次通信停滞。您可以使用JConsole通过JMX接口将与class
org.apache.activemq.transport.TransportLogger
相关的记录器的日志记录级别更改为
DEBUG
。然后您应该看到代理通信。也许这可以解释发生了什么。这是一个很好的尝试,我会做这件事,然后报告。谢谢“未提交邮件数”是指控制台中待处理邮件的数量吗?我知道这个值不是零,如果我点击队列,我可以看到消息的内容,至少有效负载看起来是有效的,并且与生产者发送的内容一致。