Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Incomplete
-
5.0.0
-
None
-
2 Ubuntu machines running virualized named activemq1 and activemq2 set up for multicast discovery. Broker names are set to be the same as the host name
Description
After bringing the brokers up and down a few times, I'll get the following errors:
INFO DemandForwardingBridge - Network connection between vm://activemq2#0 and tcp://activemq1/192.168.2.129:61616(activemq1) has been established.
ERROR Service - Async error occurred: javax.jms.JMSException: Durable consumer is in use for client: NC_activemq1_inboundactivemq2 and subscriptionName: activemq2_fof
javax.jms.JMSException: Durable consumer is in use for client: NC_activemq1_inboundactivemq2 and subscriptionName: activemq2_fof
at org.apache.activemq.broker.region.TopicRegion.addConsumer(TopicRegion.java:75)
at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:338)
at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:85)
at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:80)
at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:85)
at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:525)
at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:334)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:281)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:178)
at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:100)
at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
at org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:202)
at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)
INFO DemandForwardingBridge - Network connection between vm://activemq2#0 and tcp://activemq1/192.168.2.129:61616 shutdown due to a local error: javax.jms.JMSException: Durable consumer is in use for client: NC_activemq1_inboundactivemq2 and subscriptionName: activemq2_fof
INFO TransportConnector - Connector vm://activemq2 Stopped
INFO DemandForwardingBridge - activemq2 bridge to activemq1 stopped
My two servers are activemq1 and activemq2. The queue is specified in the activemq.xml using:
<destinations>
<topic physicalName="fof" />
</destinations>
Through debugging, I tracked this down to a race condition between the listening port (61616) and the created port (incremental) creating the connection. In the one case, it creates a durable topic, in the other it doesn't (I can't remember which is which). Regardless, when the connection fails (or is shutdown) the durable topic isn't stopped, and thus the reconnection fails.