During a connection failure we see a Topic subscriber ACK a message but its never delivered to the subscriber application

Solution In Progress - Updated -


We have a scenario where we have N topic subscribers connected to a topic with a single publisher. Once in a while we see a race condition where one of the subscribers loses its connection to the broker. In the broker logs we see the client ACK the missing message, however the message is not delivered to the clients application layer.

Background for scenario:

The broker kills the topic subscriber's connection, possibly due to inactivity:

2013-10-26 08:33:58,110 | DEBUG | Killing previous stale connection: tcp:// | org.apache.activemq.broker.TransportConnection | ActiveMQ Transport: tcp:///

The topic subscriber reconnects, the failover transport reestablish the session as expected:

2013-10-26 08:33:58,113 | INFO  | Adding Session : SessionInfo {commandId = 4, responseRequired = false, sessionId = ID:abc226ab1233-54463-1382801567916-0:11:1} | org.apache.activemq.broker.util.LoggingBrokerPlugin | ActiveMQ Transport: tcp:///
2013-10-26 08:33:58,113 | INFO  | Adding Consumer : ConsumerInfo {commandId = 5, responseRequired = true, consumerId = ID:abc226ab1233-54463-1382801567916-0:11:1:0, destination = topic://TEST, prefetchSize = 32766, maximumPendingMessageLimit = 0, browser = false, dispatchAsync = true, selector = null, subscriptionName = null, noLocal = false, exclusive = false, retroactive= false, priority = 0, brokerPath = null, optimizedAcknowledge = false, noRangeAcks = false, additionalPredicate = null} | org.apache.activemq.broker.util.LoggingBrokerPlugin | ActiveMQ Transport: tcp:///
2013-10-26 08:33:58,113 | DEBUG | uat_amq adding consumer: ID:abc226ab1233-54463-1382801567916-0:11:1:0 for destination: topic://TEST | org.apache.activemq.broker.region.AbstractRegion | ActiveMQ Transport: tcp:///

An ACKNOWLEDGMENT is observed in the broker log for the missing message.

2013-10-26 08:33:58,114 | INFO  | Acknowledging message for client ID : ID:abc226ab1233-54463-1382801567916-12:0, ID:uat190w92m7-57865-1382800214775-0:1:0:0:13 | org.apache.activemq.broker.util.LoggingBrokerPlugin | ActiveMQ Transport: tcp:///

but on the client side the subscriber never receives the message.


  • JBoss A-MQ 6.x
  • Fuse Message Broker 5.5.x

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content