[ 
https://issues.apache.org/jira/browse/QPID-1800?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Ritchie updated QPID-1800:
---------------------------------

    Status: Ready To Review  (was: In Progress)

> Moving/Copying messages via Management Console will break the reference 
> counting model.
> ---------------------------------------------------------------------------------------
>
>                 Key: QPID-1800
>                 URL: https://issues.apache.org/jira/browse/QPID-1800
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>            Reporter: Martin Ritchie
>            Assignee: Martin Ritchie
>             Fix For: 0.5
>
>
> Summary:
> The new TransactionLog interface takes a list of queues upon which to enqueue 
> a new message.
> This approach allows us to do away with reference counting for messages that 
> are only on the one queue, but it does require that the all the queues the 
> message should be enqueued upon are sent via a single enqueue.
> The management console cannot know what queues the messages are on once 
> delivery has completed so there will need to be additional synchronisation to 
> correctly enqueue a live message on to a new queue. 
> One approach that will work for move would be to check if we have a list of 
> enqueues for the message and whilst holding the lock for that list add the 
> new queue to it.
> For copy what we can simply use the normal enqueue logic an ensure that the 
> new enqueue call includes the current queue and the new queue. That way if we 
> don't already have a reference to this queue then it will gain one.  If 
> delivery is still proceeding here though then it is conceivable that the 
> message is acked and deleted before the copy completes.  This would be ok as 
> you would get an error, the problem exists where we do the enqueue and the 
> dequeue call has been made before our enqueue. If we only had the message on 
> the one queue there would be no way to guarentee that the enqueue didn't 
> cause the message to be left on the queue even though the client just acked 
> the message.
> Is that clear? I can add more details if required.

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


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to