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

Reply via email to