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

Solution In Progress - Updated -

Issue

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://10.22.43.101:55492 | org.apache.activemq.broker.TransportConnection | ActiveMQ Transport: tcp:///10.22.43.101:36562

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:///10.22.43.101:36562
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:///10.22.43.101:36562
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:///10.22.43.101:36562

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:///10.22.43.101:36562

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

Environment

  • 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