You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Rafael H. Schloming (JIRA)" <qp...@incubator.apache.org> on 2007/09/05 15:33:33 UTC

[jira] Commented: (QPID-577) Setting a MessageListener after the connection has been started may result in apparent message loss.

    [ https://issues.apache.org/jira/browse/QPID-577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12525087 ] 

Rafael H. Schloming commented on QPID-577:
------------------------------------------

Rejecting messages should not actually cause them to be redelivered. According to the speac, a rejected message must not be redelivered to the same consumer that rejected it, in fact it may not be delivered to any consumer at all, it may just be dead letter queued.

> Setting a MessageListener after the connection has been started may result in apparent message loss.
> ----------------------------------------------------------------------------------------------------
>
>                 Key: QPID-577
>                 URL: https://issues.apache.org/jira/browse/QPID-577
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: M1, M2
>            Reporter: Martin Ritchie
>             Fix For: M2.1
>
>
> When the connection is started and messages are received the are placed on the _synchronousQueue awaiting a receive() call. If the message listener is subsquently set the messages in this queue is not delivered, only new messges.
> There are two options available.
> 1) reject all the _sQueue messages causing them to be redelivered.
> 2) ensure the ordering is preserved and push the messages through the message listener.
> To verify this is the case create the following test:
> Create consumer.
> start consumer 
> publish messages to the consumer
> read first message.
> (rest of messages will now be in _syncQueue)
> attach messages listener
> (no messages will appear !BUG!)
> send final message
> message listener will receive message.
> close consumer 
> and reopen
> (there should be no messages, but all the messages between first and last will be recevied)

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