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.

Reply via email to