[
https://issues.apache.org/jira/browse/QPID-348?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Martin Ritchie updated QPID-348:
--------------------------------
Description:
The problem is that messages are be prefetched (push) so when a
rollback/recover is called this cache must be cleared or the messages will
arrive out of order.
We have to invalidate all the messages that have been sent to the client as we
do not know which messages have been processed. TxRollback and Basic.Recover do
not provide facilities to send this information. Perhaps an improvement would
be to do this analysis and send back the last message id sent to the consumer
so we can leave the cache intact.
In our Java implementation this cache is a the "pre-receive Queue" we also
have a _synchronousQueue that is used to store messages that have been
dispatched but not yet consumed by the consumer when they are using receive()
rather than a message listener.
Both of these queues need to be purged to ensure that only have one copy of
each message sent to the client.
was:Details tbc
> Problems related to prefetching of messages
> -------------------------------------------
>
> Key: QPID-348
> URL: https://issues.apache.org/jira/browse/QPID-348
> Project: Qpid
> Issue Type: Bug
> Components: Java Client
> Reporter: Marnie McCormack
> Assigned To: Martin Ritchie
>
> The problem is that messages are be prefetched (push) so when a
> rollback/recover is called this cache must be cleared or the messages will
> arrive out of order.
> We have to invalidate all the messages that have been sent to the client as
> we do not know which messages have been processed. TxRollback and
> Basic.Recover do not provide facilities to send this information. Perhaps an
> improvement would be to do this analysis and send back the last message id
> sent to the consumer so we can leave the cache intact.
> In our Java implementation this cache is a the "pre-receive Queue" we also
> have a _synchronousQueue that is used to store messages that have been
> dispatched but not yet consumed by the consumer when they are using receive()
> rather than a message listener.
> Both of these queues need to be purged to ensure that only have one copy of
> each message sent to the client.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.