Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
5.10.0, 5.11.0, 5.11.1
Description
When lot of messages got expired because of JMS client Time to Live (TTL) property then below error will appear and consumer will freeze
Connection to broker failed: Unmatched acknowledge: MessageAck {commandId = 77, responseRequired = false, ackType = 2, consumerId =XXX firstMessageId = ID:XXX lastMessageId = ID:XXX , destination = queue://abc, transactionId = null, messageCount = 1, poisonCause = null}; Could not find Message-ID in dispatched-list (start of ack) at org.apache.activemq.broker.region.PrefetchSubscription.assertAckMatchesDispatched(PrefetchSubscription.java:477) [activemq-broker-5.11.1.jar:5.11.1 at org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:212) [activemq-broker-5.11.1.jar:5.11.1] at org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:441) [activemq-broker-5.11.1.jar:5.11.1] at org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:484) [activemq-broker-5.11.1.jar:5.11.1] at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:87) [activemq-broker-5.11.1.jar:5.11.1] at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:87) [activemq-broker-5.11.1.jar:5.11.1] at org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:277) [activemq-broker-5.11.1.jar:5.11.1] at org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:97) [activemq-broker-5.11.1.jar:5.11.1] at org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:550) [activemq-broker-5.11.1.jar:5.11.1] at org.apache.activemq.command.MessageAck.visit(MessageAck.java:245) [activemq-client-5.11.1.jar:5.11.1] at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:334) [activemq-broker-5.11.1.jar:5.11.1] at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:188) [activemq-broker-5.11.1.jar:5.11.1] at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50) [activemq-client-5.11.1.jar:5.11.1] at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113) [activemq-client-5.11.1.jar:5.11.1] at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:270) [activemq-client-5.11.1.jar:5.11.1] at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) [activemq-client-5.11.1.jar:5.11.1] at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214) [activemq-client-5.11.1.jar:5.11.1] at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196) [activemq-client-5.11.1.jar:5.11.1] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_25]
Steps to reproduce :
1. Enable TTL property for JMS client
2. Keep TTL value very low say 5 sec
3. Send lot of messages so some message will get expired
4. Make sure that some message should expired when they are in MDB means running inside MDB
Then we will see above error in the logs
Attachments
Attachments
Issue Links
- is related to
-
AMQ-5476 Batch transactions of priority messages: javax.jms.JMSException: Unmatched acknowledge: MessageAck {commandId = 14, responseRequired = false, ackType = 2, ...Could not find Message-ID XXX in dispatched-list (start of ack)
- Resolved