ActiveMQ , 异步错误发生与不匹配的确认

问题描述

WARN | Async error occurred | org.apache.activemq.broker.TransportConnection.Service | 
ActiveMQ Transport: ssl:///172.20.145.203:41888\njavax.jms.JMSException: Unmatched ackNowledge: MessageAck {commandId = 23,responserequired = false,ackType = 2,consumerId = ID:my-mq-test-1621569837266-1:2:1:1,firstMessageId = ID:my-mq-test-prod-1621131315514-1:12636:1:1:2,lastMessageId = ID:my-mq-test-prod-1-1621131316414-1:12683:1:1:1,destination = queue://my-mq-test-queue,transactionId = null,messageCount = 15,poisonCause = null}; Expected message count (15) differs from count in dispatched-list (14)\n\tat 
org.apache.activemq.broker.region.PrefetchSubscription.assertAckMatchesdispatched(PrefetchSubscription.java:465)[activemq-broker-5.15.15.jar:5.15.15]\n\tat
 org.apache.activemq.broker.region.PrefetchSubscription.ackNowledge(PrefetchSubscription.java:210)[activemq-broker-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.broker.region.AbstractRegion.ackNowledge(AbstractRegion.java:534)[activemq-broker-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.broker.region.Regionbroker.ackNowledge(Regionbroker.java:475)[activemq-broker-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.broker.brokerFilter.ackNowledge(brokerFilter.java:89)[activemq-broker-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.broker.brokerFilter.ackNowledge(brokerFilter.java:89)[activemq-broker-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.broker.Transactionbroker.ackNowledge(Transactionbroker.java:276)[activemq-broker-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.broker.brokerFilter.ackNowledge(brokerFilter.java:89)[activemq-broker-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.broker.brokerFilter.ackNowledge(brokerFilter.java:89)[activemq-broker-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.broker.brokerFilter.ackNowledge(brokerFilter.java:89)[activemq-broker-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:590)[activemq-broker-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.command.MessageAck.visit(MessageAck.java:245)[activemq-client-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:336)[activemq-broker-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:200)[activemq-broker-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)[activemq-client-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:125)[activemq-client-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:301)[activemq-client-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)[activemq-client-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:171)[activemq-client-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:233)[activemq-client-5.15.15.jar:5.15.15]\n\tat 
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:215)[activemq-client-5.15.15.jar:5.15.15]\n\tat java.lang.Thread.run(Thread.java:749)[:1.8.0_292]"

出现上述警告,在 AmazonMQ 代理中,同时或一段时间后,代理停止向消费者发送消息。使用客户端确认消费者。这个问题几乎每周都会出现一次。此队列包含持久性和非持久性消息。非持久性消息的到期时间设置为 0,以便它们在确认之前不会到期。使用以下队列策略

 <policyEntry prioritizedMessages="true" queue="&gt;">
          <pendingQueuePolicy>
            <fileQueueCursor/>
          </pendingQueuePolicy>
        </policyEntry>

Broker Configuration

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)