Failover and prefetch=0 can result in hung consumers if the MessagePull command
is lost
---------------------------------------------------------------------------------------
Key: AMQ-2877
URL: https://issues.apache.org/activemq/browse/AMQ-2877
Project: ActiveMQ
Issue Type: Bug
Components: JMS client
Affects Versions: 5.4.0
Reporter: Gary Tully
Assignee: Gary Tully
Fix For: 5.4.1
With prefetch=0, a consumer that has no messages sends an async message to the
broker to have it dispatch a single message and waits for the dispatch to
ocurr. prefetch=0 makes the consumer a pull consumer, in that it has to ask for
a message each time.
there is a possibility that failover occurs just after the send of the
messagePull command such that the consumer is blocked waiting for a message
but a failover connection or broker does not know about the outstanding pull
command. The connection state tracker is the normal mechanism for command
replay after failover. This needs to be extended to track messagePull commands,
keeping one outstanding reference for each consumer/destination pair that can
be replayed after failover.
It makes sense to reuse the messageCache for this.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.