You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Sergio Bossa (JIRA)" <ji...@apache.org> on 2012/10/19 19:04:12 UTC

[jira] [Commented] (AMQ-3485) Transacted Session returns invalid MessageConsumer after the first MessageConsumer for the same destiantion. Bug introduced in 5.5.0 - working ok in 4.1.2

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

Sergio Bossa commented on AMQ-3485:
-----------------------------------

The problem is not about consuming from *multiple consumers* the *same* message: it is about consuming *different messages*.
That is, subsequent consumers always return null if there's a previous consumer with a non committed message, which doesn't make sense, as if you want to preserve ordering with that, you should really throw an exception rather than fail silently.
Is it clearer now?
                
> Transacted Session returns invalid MessageConsumer after the first MessageConsumer for the same destiantion. Bug introduced in 5.5.0 - working ok in 4.1.2
> ----------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3485
>                 URL: https://issues.apache.org/jira/browse/AMQ-3485
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JMS client
>    Affects Versions: 5.5.0
>            Reporter: Pablo La Greca
>         Attachments: activemq-issue-test-case.zip
>
>
> When I have a transacted Session, as it is single threaded I can't create two MessageConsumer to the same Destination. But if I create a MessageConsumer to a Destination and then I close it, then I should be able to create a new MessageConsumer to the same Destination. This is working fine in active mq 4.1.2 but it doesn't work in 5.5.0. It allows to create a second MessageConsumer but that seconde MessageConsumer always returns null when the queue has messages.
> i.e:
> Session session = .... //transacted session
> Destination dest = .... 
> MessageConsumer mc = session.createMessageConsumer(dest);
> Message message = mc.receive(); // message received ok
> mc.close();
> mc = session.createMessageConsumer(dest);
> Message message = mc.receive(); // message is null
> Thanks, Pablo.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira