I'm using ActiveMQ 5.2 and consumer using DefaultMessageListenerContainer(persistent and default prefetch size=1000). And the broker are disposing of about 100 messages per a minute. The problem is that the following error occurs occasionally and after that next messages are hardly consumes to the consumers.
ERROR [ActiveMQ Transport: tcp:///${IP}:3324org.apache.activemq.broker.TransportConnection:291 ] - Async error occurred: javax.jms.JMSException: Unmatched acknowledege: MessageAck {commandId = 450502, responseRequired = false, ackType = 2, consumerId = ID:${name}-49505-1259629527522-0:0:1:1, firstMessageId = ID:loopback-51149-1260261684792-2:14227:2:1:98668, lastM essageId = ID:loopback-51149-1260261684792-2:14227:2:1:98668, destination = queue://qu, transactionId = null, messageCount= 1}; Could not find Message-ID ID:loopback-51149-1260261684792-2:14227:2:1:98668 in dispatched-list (start of ack) javax.jms.JMSException: Unmatched acknowledege: MessageAck {commandId = 450502, responseRequired = false, ackType = 2, consumerId =ID:${name}-49505-1259629527522-0:0:1:1, firstMessageId = ID:loopback-51149-1260261684792-2:14227:2:1:98668, lastMessageId = ID:loopback-51149-1260261684792-2:14227:2:1:98668, destination = queue://qu, transactionId = null, messageCount = 1}; Could not find Message-ID ID:loopback-51149-1260261684792-2:14227:2:1:98668 in dispatched-list (start of ack) at org.apache.activemq.broker.region.PrefetchSubscription.assertAckMatchesDispatched(PrefetchSubscription.java:439) at org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:189) at org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:374) at org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:463) at org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:195) at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:75) at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:75) at org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:85) at org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:457) at org.apache.activemq.command.MessageAck.visit(MessageAck.java:205) at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:306) at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:180) at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68) at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:144) at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:207) at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:85) at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:204) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:186) at java.lang.Thread.run(Thread.java:810) When is it possible to break out this exception? And how does it affect the broker? Even though Unmatched acknowledege exception can occur in 3 cases(start of ack, end of ack, different count) at a source, I cannot understand why it is generated. regards, sic -- View this message in context: http://old.nabble.com/reason-for-Unmatched-acknowledege-tp27026961p27026961.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.