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 2008/12/02 14:02:05 UTC

[jira] Created: (AMQ-2020) Messages are arriving out of sequence with large message volumes

Messages are arriving out of sequence with large message volumes
----------------------------------------------------------------

                 Key: AMQ-2020
                 URL: https://issues.apache.org/activemq/browse/AMQ-2020
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.2.0
         Environment: all
            Reporter: Gary Tully
            Assignee: Gary Tully
             Fix For: 5.3.0


With large volumes of messages, some messages can arrive out of order on occasion. Scenario is hard to reproduce but a single producer and single consumer can cause the problem if the volume is sufficiently high. The Producer needs to exceed the memory limit such that the cache is filled and when the broker moves over to the store from the cache, the consumer need to ack a message that will be redelivered from the store but would normally be suppressed as a duplicate. 
One way to avoid the problem is to disable the cache for a Queue:
{code}
<amq:policyEntry queue=">" useCache="false" >
{code}

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


[jira] Resolved: (AMQ-2020) Messages are arriving out of sequence with large message volumes

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

Gary Tully resolved AMQ-2020.
-----------------------------

    Resolution: Fixed

two problems, the test case with the commit shows both.
there was an inadvertent audit rollback on every ack which meant the audit did not suppress all duplicates.
Under high load, way too many duplicates were being produced by the reference store. A queue caches its received messages up to a point and dispatches from this cache. However once the cache is exhausts, all remaining messages in the store are re dispatched. The resolution is to set the batch start point once the cache is full such that resuming after the cache is exhausted begins with the first non cached message rather than with the current start of the store. 
The additional setBatch method that is present in the KahaStore probably needs to be pulled up into the MessageStore interface. currently there is a cast down in the cursor. If this solution proves generally applicable we can do this.

> Messages are arriving out of sequence with large message volumes
> ----------------------------------------------------------------
>
>                 Key: AMQ-2020
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2020
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.2.0
>         Environment: all
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>             Fix For: 5.3.0
>
>
> With large volumes of messages, some messages can arrive out of order on occasion. Scenario is hard to reproduce but a single producer and single consumer can cause the problem if the volume is sufficiently high. The Producer needs to exceed the memory limit such that the cache is filled and when the broker moves over to the store from the cache, the consumer need to ack a message that will be redelivered from the store but would normally be suppressed as a duplicate. 
> One way to avoid the problem is to disable the cache for a Queue:
> {code}
> <amq:policyEntry queue=">" useCache="false" >
> {code}

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