[ 
https://issues.apache.org/activemq/browse/AMQ-2579?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary Tully updated AMQ-2579:
----------------------------

    Attachment: testCase.patch

Test case for this issue

> Failover connection recovery needs a new command to indicate recovery 
> completion that can gate dispatch on a recovered consumer
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-2579
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2579
>             Project: ActiveMQ
>          Issue Type: Improvement
>          Components: Broker
>    Affects Versions: 5.3.0
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>             Fix For: 5.4.0
>
>         Attachments: testCase.patch
>
>
> Unconsumed messages at a consumer need to be rolledback on recovery as they 
> can get redispatched in arbitrary order. see  - 
> https://issues.apache.org/activemq/browse/AMQ-2573
> As operations are in progress, like a send transaction, the rollback cannot 
> happen till the send transaction commit completes so it must be async with 
> the failover interruption. Dispatch needs to be gated on completion of the 
> outstanding operations as it currently is with the resolution to AMQ-2573
> However there is the possibility that the broker starts to dispatch to that 
> consumer/connection before recovery is complete and can block the receipt of 
> messages, the response to the send commit for example as the dispatch is 
> waiting for the send to complete so that any unconsumed messages are 
> rolledback in advance of dispatch. With asyncDispatch=false and 
> optimizedDispatch it is possible to simulate this. 
> The solution requires two wireformat changes, An indication on a connection 
> that it is recovering (this can be propagated to a consumer)  and an 
> indication that recovery is complete such that dispatch on a recovered 
> consumer can complete. An additional AckMode AckRecoveryComplete could do it.
> Thus dispatch would be gated such that it cannot interfere with outstanding 
> work that needs to be restored and completed inorder to correctly clear 
> unconsumed and delivered messages.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to