activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rob Davies (JIRA)" <j...@apache.org>
Subject [jira] Assigned: (AMQ-687) Multiple durable topics don't work with network of brokers
Date Mon, 10 Apr 2006 16:55:49 GMT
     [ https://issues.apache.org/activemq/browse/AMQ-687?page=all ]

Rob Davies reassigned AMQ-687:
------------------------------

    Assign To: Rob Davies

> Multiple durable topics don't work with network of brokers
> ----------------------------------------------------------
>
>          Key: AMQ-687
>          URL: https://issues.apache.org/activemq/browse/AMQ-687
>      Project: ActiveMQ
>         Type: Bug

>   Components: Broker
>     Versions: 4.0 RC 2
>  Environment: AMQ RC2, Solaris 8 / 10, JDK 1.5
>     Reporter: Kevin Yaussy
>     Assignee: Rob Davies
>     Priority: Critical

>
>
> There is a problem with a network of brokers with regards to a single consumer subscribing
to multiple durable topics.  
> To recreate the issue, I changed examples/ConsumerTool.java to subscribe to two durable
topics, with the createDurableSubscriber calls changed to look like this:
>                 consumer = session.createDurableSubscriber(topic1, topic1.getTopicName()
);
>                 consumer2 = session.createDurableSubscriber( topic2, topic2.getTopicName()
);
> This ensures that the name of the durable subscriptions are unique, rather than using
the "consumerName" as the base example code does.
> The problem is with any remote brokers: it appears that the broker-to-broker code for
durable subscriptions does not *uniquely* set the subscription name for multiple durable subscriptions
to different topics.  Here is the message and exception information from the remote broker:
> <INFO> <org.apache.activemq.broker.AbstractConnection.Service> < Mon 2006/04/10
10:50:52:660 > <org.apache.activemq.broker.AbstractConnection.se
> rviceException> <Thread[tcp://sbtmdgca/170.137.15.64:61618,5,main]> Async error
occurred: javax.jms.JMSException: Durable consumer is in use for
>  client: NC_ProdDN3AsbtmdgcasbtmdgcAMQDN_inboundProdDN3Bsbtgc0bsbtgc0AMQDN and subscriptionName:
ProdDN3Bsbtgc0bsbtgc0AMQDN
> <INFO> Stack Trace follows:
> javax.jms.JMSException: Durable consumer is in use for client: NC_ProdDN3AsbtmdgcasbtmdgcAMQDN_inboundProdDN3Bsbtgc0bsbtgc0AMQDN
and subscriptio
> nName: ProdDN3Bsbtgc0bsbtgc0AMQDN
>         at org.apache.activemq.broker.region.TopicRegion.addConsumer(TopicRegion.java:81)
>         at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:276)
>         at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:69)
>         at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:75)
>         at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:69)
>         at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:81)
>         at org.apache.activemq.broker.AbstractConnection.processAddConsumer(AbstractConnection.java:422)
>         at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:291)
>         at org.apache.activemq.broker.AbstractConnection.service(AbstractConnection.java:196)
>         at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:62)
>         at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:88)
>         at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:70)
>         at org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:75)
>         at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:44)
>         at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:55)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport.addSubscription(DemandForwardingBridgeSupport.java:344)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteConsumerAdvisory(DemandForwardingBridgeSupport.java:324)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBridgeSupport.java:274)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBridgeSupport.java:120)
>         at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:88)
>         at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:70)
>         at org.apache.activemq.transport.failover.FailoverTransport$1.onCommand(FailoverTransport.java:103)
>         at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:114)
>         at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
>         at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:87)
>         at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:139)
>         at java.lang.Thread.run(Thread.java:595)
> You can see that the "subscriptionName" used from the originating broker is the brokerName.
 This will never handle multiple durable subscriptions (different topics) from the same consumer.
> Perhaps in addition to the brokerName, the original topic name could be used?  Or, just
the topic name, since clientId is supposed to make it unique anyway.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message