activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (AMQ-2579) Failover connection recovery needs a new command to indicate recovery completion that can gate dispatch on a recovered consumer
Date Mon, 25 Jan 2010 18:23:44 GMT

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

Gary Tully resolved AMQ-2579.
-----------------------------

    Resolution: Fixed

resolved in r902908
introduces wire format update to version 6

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


Mime
View raw message