You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Rajith Attapattu (JIRA)" <ji...@apache.org> on 2010/10/18 18:47:22 UTC
[jira] Resolved: (QPID-2471) Java client releases messages in an
unpredictable order on recover
[ https://issues.apache.org/jira/browse/QPID-2471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rajith Attapattu resolved QPID-2471.
------------------------------------
Resolution: Fixed
Fixed along with a test case.
> Java client releases messages in an unpredictable order on recover
> ------------------------------------------------------------------
>
> Key: QPID-2471
> URL: https://issues.apache.org/jira/browse/QPID-2471
> Project: Qpid
> Issue Type: Bug
> Components: Java Client
> Affects Versions: 0.6
> Reporter: Rajith Attapattu
> Assignee: Rajith Attapattu
> Fix For: 0.7
>
> Attachments: QPID-2471.patch
>
>
> As per the JMS spec, If "recover" is called on a session, the client should stop message delivery for that session, and restarts message delivery with the oldest unacknowledged message.
> It also says that "Redelivered messages do not have to be delivered in exactly their original delivery order".
> However it's nice to ensure ordering where possible.
> Looking at the code (alteast the 0-10 codepath) it seems we are not making a reasonable effort in ensuring we release all messages when in prefetch mode.
> Quite often messages are stuck in the pre-delivery dispatch queue or the individual consumer queues.
> This results in the messages being delivered out of order.
> Here the steps that would need to do to ensure recovery is done properly and if possible to ensure ordering.
> ------------------------------------------------------------------------------------------------------------------------------------------------
> 1. Flush any message acks kept in buffer.
> 2. Stop the message flow.
> 3. Drain the dispatch queue and the queues in each consumer
> 4. Reject/release all unacked messages.
> 5. Start the message flow again.
> It is also nice to have a test case to ensure that ordering is maintained under reasonable circumstances.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org