Best approach is to pull a test case together that demonstrates this problem and open a jira issue. If we can reproduce it we can fix it. A test case is the best way to capture and protect your use case.
One quick suggestion would be to statically configure your network to eliminate the chance that this could be related to duplication or ordering or the network connectors in the multicast discovery case. Also check for dropped connections. Redelivered acks after failover can result in the "unmatched ack" error that is not fatal. The message loss *is* worrying. How is a lost message detected in your case, could it be an out of order message? If so, can you validate that it is still an issue with the latest SNAPSHOT. One issue w.r.t to ordering was addressed in the past few weeks. 2008/12/13 janylj <jan...@gmail.com>: > > Hello, > > We are using ActiveMQ 5.2. Our set up is three broker cluster using > multicast discovery. We saw a lot of Async error. For example, in 400 > milli-seconds, there were 762 ERROR's of "Async error occurred: > javax.jms.JMSException: Unmatched acknowledege". > > We were sending persistent message (using AMQ persistence), asyn send and > auto ack. And we did see message lost when this Exception happened. However, > the number of messages lost didn't match with the number of this Exception > occurred. What's the cause of this problem? How should we deal with it? > > This fixed bug (https://issues.apache.org/activemq/browse/AMQ-1976) > suggested it related to the consumer memory. Our consumer memory did run and > stay high during the course. But there was no OutOfMemory error. Thank you > very much. > > 2008-12-11 10:44:50,833 [50.17.113:48282] ERROR Service > - Async error occurred: javax.jms.JMSException: Unmatched acknowledege: > MessageAck {commandId = 47577, responseRequired = false, ackType = 2, > consumerId = > ID:prod-frogger-consumer1.prod.bigfishgames.com-53468-1228955705827-0:0:5:1, > firstMessageId = ID:joao-55117-1229021096318-0:17:1:1:3601, lastMessageId = > ID:joao-55117-1229021096318-0:17:1:1:3601, destination = > queue://com.bigfishgames.dd.service.frogger.queue, transactionId = null, > messageCount = 1}; Could not find Message-ID > ID:joao-55117-1229021096318-0:17:1:1:3601 in dispatched-list (start of ack) > javax.jms.JMSException: Unmatched acknowledege: MessageAck {commandId = > 47577, responseRequired = false, ackType = 2, consumerId = > ID:prod-frogger-consumer1.prod.bigfishgames.com-53468-1228955705827-0:0:5:1, > firstMessageId = ID:joao-55117-1229021096318-0:17:1:1:3601, lastMessageId = > ID:joao-55117-1229021096318-0:17:1:1:3601, destination = > queue://com.bigfishgames.dd.service.frogger.queue, transactionId = null, > messageCount = 1}; Could not find Message-ID > ID:joao-55117-1229021096318-0:17:1:1:3601 in dispatched-list (start of ack) > at > org.apache.activemq.broker.region.PrefetchSubscription.assertAckMatchesDispatched(PrefetchSubscription.java:438) > at > org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:188) > at > org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:373) > at > org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:462) > at > org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:194) > at > org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74) > at > org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74) > at > org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:85) > at > org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:456) > at org.apache.activemq.command.MessageAck.visit(MessageAck.java:205) > at > org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:305) > at > org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179) > at > org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68) > at > org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143) > at > org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:206) > at > org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84) > at > org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203) > at > org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185) > at java.lang.Thread.run(Thread.java:595) > Async error occurred: javax.jms.JMSException: Unmatched acknowledege". > > -- > View this message in context: > http://www.nabble.com/Async-error-occurred%3A-javax.jms.JMSException%3A-Unmatched-acknowledege-tp20986352p20986352.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. > > -- http://blog.garytully.com Open Source SOA http://FUSESource.com