You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Dominic Tootell (Updated) (JIRA)" <ji...@apache.org> on 2012/01/24 13:10:41 UTC

[jira] [Updated] (AMQ-3678) Active Durable Topic Consumer is not re-assigned to Topic after it is deleted and recreated

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

Dominic Tootell updated AMQ-3678:
---------------------------------

    Attachment: Topic.patch.txt
                CountMessagesRecievedOnDurableTopicAfterTopicDeletion.java
    
> Active Durable Topic Consumer is not re-assigned to Topic after it is deleted and recreated
> -------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3678
>                 URL: https://issues.apache.org/jira/browse/AMQ-3678
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.1
>         Environment: Mac OS X (10.7.2)
>            Reporter: Dominic Tootell
>              Labels: Topic
>         Attachments: CountMessagesRecievedOnDurableTopicAfterTopicDeletion.java, Topic.patch.txt
>
>
> If I have a durable subscriber on a topic, which is *{{active}}*; and a message 
> producer is sending to the topic. If the topic is deleted (whist the durable 
> consumer is *{{active}}*), should the durable subscription be re-added to the 
> topic (as a consumer) when it the TOPIC is subsequently recreated by the producer 
> on the next message send? 
> When replicating the above with a QUEUE that has an active consumer and producer.
> If you delete the queue whilst the producer and consumer are active, the next message 
> sent by the producer recreates the QUEUE, and the active consumer is then registered 
> as a consumer on the queue.  However, this isn't the case for an active durable consumer 
> (which isn't re-added as a consumer); when the TOPIC is subsequently recreated by the 
> producer's next message to the topic.
> It could be the case that you should not be able to delete the topic, via jmx, when
> an active durable consumer is present?  If so, then should this logic also apply to the queue? (not able
> to delete it via jmx when it has an active consumer).
> To re-attach the active durable consumer to the newly created topic, in 
> - http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java
> You could apply the attached patch to the *{{public void addSubscription(ConnectionContext context, final Subscription sub) throws Exception }}* method (line 112) to re-add the durable consumer. (junit included)
> ----
> A related question to the above is should the advisory 
> - "ActiveMQ.Advisory.Consumer.Topic.XXX"  or
> - "ActiveMQ.Advisory.Consumer.Queue.XXX" 
> Be recreated when the active consumer reattaches to the queue or topic?
> When you remove, via jmx, the Queue or Topic the associated Consumer Advisory Topic is also removed.
> When the queue or topic is recreated, and the consumer re-assigned to the new queue; the advisory isn't
> created/fired.  Would this cause any issues?  Should an advisory be sent?  does it affect *{{dynamicallyIncludedDestinations}}*
> and the use of the Advisories when using a network of brokers?
> cheers
> /dom

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira