You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by "Hiram Chirino (JIRA)" <ji...@apache.org> on 2011/09/06 16:05:11 UTC

[jira] [Commented] (APLO-86) Subscription with exclusive:true and auto-delete:true should not redeliver messages

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

Hiram Chirino commented on APLO-86:
-----------------------------------

I've just added the following feature:
If a 'temp:true' header is set on a subscribe frame, then a destination that created connection will only be consumable by the connection.  It will also auto delete the destination when the connection is terminated.

Note that the connection is allowed multiple subscribers on the destination so this is not exactly the same as exclusive:true, so you may need to still use exclusive:true.

> Subscription with exclusive:true and auto-delete:true should not redeliver messages
> -----------------------------------------------------------------------------------
>
>                 Key: APLO-86
>                 URL: https://issues.apache.org/jira/browse/APLO-86
>             Project: ActiveMQ Apollo
>          Issue Type: Bug
>            Reporter: Lionel Cons
>
> The exclusive and auto-delete subscription options can be combined to create a private reply queue.
> The current Apollo snapshot does not seem to always delete unconsumed messages, allowing a rogue client to consume them.
> My test scenario:
>  - c1 subscribes to /queue/foo with exclusive:true and auto-delete:true and ack:client
>  - c1 sends messages with the appropriate reply-to header, expecting replies to go to /queue/foo
>  - (rogue) c2 subscribes to /queue/foo with the intent to steal messages, it does not get any because of exclusive:true
>  - c1 receives and acks messages and then decides to quit
>  - there are not yet delivered or not yet acked messages in the queue
>  - c1 unsubscribes and disconnects
>  - the broker delivers the pending messages to c2 before/while deleting the queue
> IMHO, the broker should not deliver messages to c2 in this situation.
> The best solution is probably to forbid subscribing to a queue that has a subscription with both exclusive:true and auto-delete:true.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira