activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christopher L. Shannon (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-5851) Unmatched acknowledge: MessageAck {commandId = 77, responseRequired = false, ackType = 2, ...Could not find Message-ID XXX in dispatched-list (start of ack)
Date Tue, 23 Jun 2015 14:14:00 GMT

    [ https://issues.apache.org/jira/browse/AMQ-5851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14597695#comment-14597695
] 

Christopher L. Shannon commented on AMQ-5851:
---------------------------------------------

It seems like switching the logic to only remove the message or messages that the ack refers
to might be the best way to go. The rest of the acknowledgements seem to work like this already
so it seems like a good idea to make them behave the same.

Besides expiring pending messages waiting to be dispatched, does the expiry task also look
at dispatched messages? 

> Unmatched acknowledge: MessageAck {commandId = 77, responseRequired = false, ackType
= 2, ...Could not find Message-ID XXX in dispatched-list (start of ack)
> ------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-5851
>                 URL: https://issues.apache.org/jira/browse/AMQ-5851
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JMS client
>    Affects Versions: 5.10.0, 5.11.0, 5.11.1
>            Reporter: Grijesh Saini
>              Labels: ttl
>         Attachments: AcknowledgeIssue.zip
>
>
> When lot of messages got expired because of JMS client Time to Live (TTL) property then
below error will appear and consumer will freeze
> {code:xml}
>  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]
> {code}
> 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



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message