Return-Path: Delivered-To: apmail-geronimo-activemq-dev-archive@www.apache.org Received: (qmail 87837 invoked from network); 10 Apr 2006 16:14:19 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 10 Apr 2006 16:14:19 -0000 Received: (qmail 53529 invoked by uid 500); 10 Apr 2006 16:14:18 -0000 Delivered-To: apmail-geronimo-activemq-dev-archive@geronimo.apache.org Received: (qmail 53460 invoked by uid 500); 10 Apr 2006 16:14:17 -0000 Mailing-List: contact activemq-dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: activemq-dev@geronimo.apache.org Delivered-To: mailing list activemq-dev@geronimo.apache.org Received: (qmail 53436 invoked by uid 99); 10 Apr 2006 16:14:17 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Apr 2006 09:14:17 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [192.87.106.226] (HELO ajax.apache.org) (192.87.106.226) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Apr 2006 09:14:12 -0700 Received: from ajax (localhost.localdomain [127.0.0.1]) by ajax.apache.org (Postfix) with ESMTP id C1554D4A03 for ; Mon, 10 Apr 2006 17:13:51 +0100 (BST) Message-ID: <916471524.1144685631789.JavaMail.jira@ajax> Date: Mon, 10 Apr 2006 17:13:51 +0100 (BST) From: "Kevin Yaussy (JIRA)" To: activemq-dev@geronimo.apache.org Subject: [jira] Created: (AMQ-687) Multiple durable topics don't work with network of brokers MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N 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 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: < Mon 2006/04/10 10:50:52:660 > Async error occurred: javax.jms.JMSException: Durable consumer is in use for client: NC_ProdDN3AsbtmdgcasbtmdgcAMQDN_inboundProdDN3Bsbtgc0bsbtgc0AMQDN and subscriptionName: ProdDN3Bsbtgc0bsbtgc0AMQDN 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