You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2015/07/16 13:40:04 UTC

[jira] [Commented] (AMQ-5400) Unable to keep message order using ActiveMQ-RAR

    [ https://issues.apache.org/jira/browse/AMQ-5400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14629599#comment-14629599 ] 

ASF subversion and git services commented on AMQ-5400:
------------------------------------------------------

Commit c85c7c14720dffeb44633547db540533796a8388 in activemq's branch refs/heads/master from [~gtully]
[ https://git-wip-us.apache.org/repos/asf?p=activemq.git;h=c85c7c1 ]

AMQ-5400 - rework to remove static lock - impacted parallel delivery and hense performance. Fix and additional tet


> Unable to keep message order using ActiveMQ-RAR 
> ------------------------------------------------
>
>                 Key: AMQ-5400
>                 URL: https://issues.apache.org/jira/browse/AMQ-5400
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.9.0, 5.10.0
>         Environment: JBoss EAP6 + ActiveMQ 5.10.0
>            Reporter: Tamas Cserveny
>            Assignee: Gary Tully
>         Attachments: block-session-until-redelivery.patch
>
>
> We have an application server which processes the messages using an MDB.  We are using message grouping to keep the message processing order.
> It seems that it is not possible to do this, because in case the onMessage signals rollback, then the queue does not block until the redelivery time, but keeps on dispatching.
> ActiveMQSession.java method afterRollback() @938 is triggered in this case. Which will redeliver the message by scheduling it:
> connection.getScheduler().executeAfterDelay(new Runnable() {
>                                     @Override
>                                     public void run() {
>                                         ((ActiveMQDispatcher)md.getConsumer()).dispatch(md);
>                                     }
>                                 }, redeliveryDelay);
> The session is not blocked or otherwise stopped from processing more messages, so it does it.
> Setting prefetch=1 for the consumer did not helped.
> I have maxSessions=1 in the activationSpec.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)