Infinite loop from broker's network connector when using multiple durable 
subscribers (topics) with msg selector.
-----------------------------------------------------------------------------------------------------------------

                 Key: AMQ-1102
                 URL: https://issues.apache.org/activemq/browse/AMQ-1102
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 4.1.0
         Environment: Linux
            Reporter: Samson


The following is the series of messages resulting from the broker (infinite 
loop):

INFO  DemandForwardingBridge         - Network connection between 
vm://localhost#0 and tcp://localhost/127.0.0.1:61601 shutdown due to a local 
error: javax.jms.JMSException: Durable consumer is in use for client: 
NC_SWITCH1BROKER_inboundlocalhost and subscriptionName: localhost_TEST.FOO
INFO  TransportConnector             - Connector vm://localhost Stopped
INFO  NetworkConnector               - Establishing network connection between 
from vm://localhost?network=true to tcp://switch:61601
INFO  TransportConnector             - Connector vm://localhost Started
INFO  DemandForwardingBridge         - Network connection between 
vm://localhost#2 and tcp://localhost/127.0.0.1:61601(SWITCH1BROKER) has been 
established.
INFO  DemandForwardingBridge         - Network connection between 
vm://localhost#2 and tcp://localhost/127.0.0.1:61601 shutdown due to a local 
error: javax.jms.JMSException: Durable consumer is in use for client: 
NC_SWITCH1BROKER_inboundlocalhost and subscriptionName: localhost_TEST.FOO
INFO  TransportConnector             - Connector vm://localhost Stopped
...


EXACT STEPS TO REPRODUCE:

1  -Start standalone broker
        -using default conf/activemq.xml file

2  -Start EmbeddedBroker (with network connector specified):
        BrokerService broker = new BrokerService();
                broker.setUseJmx(true);
                broker.setBrokerName("SWITCH1BROKER");

        TransportConnector connector =
            broker.addConnector(new URI("tcp://localhost:"+61601));
        connector.setDiscoveryUri(new URI("multicast://default"));
        broker.addNetworkConnector(new URI("multicast://default"));

        broker.start();

At this point, I'll get the following output (which looks normal):

INFO  NetworkConnector               - Establishing network connection between 
from vm://localhost?network=true to tcp://switch:61601
INFO  TransportConnector             - Connector vm://localhost Started
INFO  DemandForwardingBridge         - Network connection between 
vm://localhost#0 and tcp://localhost/127.0.0.1:61601(SWITCH1BROKER) has been 
established.


3.  -Edit line 105 of ConsumerTool to specify any message selector
        consumer = session.createDurableSubscriber((Topic) destination,
            consumerName, "BLAH = '1'", false);

4.  -Start ConsumerTool with clientID consumer1
        -connect to tcp://localhost:61601
        -using topics, durable subscription, w/ message selector

5.  -Start ConsumerTool with clientID consumer2
        -connect to tcp://localhost:61601
        -using topics, durable subscription, w/ message selector



-- 
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

        

Reply via email to