You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2010/08/25 12:13:47 UTC

[jira] Created: (AMQ-2877) Failover and prefetch=0 can result in hung consumers if the MessagePull command is lost

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.


[jira] Resolved: (AMQ-2877) Failover and prefetch=0 can result in hung consumers if the MessagePull command is lost

Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2877?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully resolved AMQ-2877.
-----------------------------

    Resolution: Fixed

resolve in 988974

having a timeout on the wait for pull may also be sensible, lets see.

> 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.