Hello again,

We are from AMQ 5.4.0 to 5.6.0, and there appears to be a new uniqueness 
constraint in network connector names in network-of-brokers configurations.

Here's our setup:
- N copies of a producer application; each copy of the producer application 
consists of an embedded broker with 2 network connectors pointing at an 
embedded broker in the consumer application
- 1 consumer application; the consumer application consists of an embedded 
broker with 2 transport connectors

Messages in the consumer application are sent to the embedded broker, which 
pushes those messages to the embedded broker in the consumer application over 
the network/transport connectors, and are consumed by listeners on the embedded 
broker in the consumer application.

In AMQ 5.4.0, the name of the network connectors in the embedded broker in the 
producer application were not required to be unique across copies of the 
application, ie. for each copy of the producer application used the same name 
for each network connector.  In AMQ 5.6.0, we receive the following error when 
starting a second copy of the producer application:


        In the producer application:

        Network connection between vm://producerBroker#4 and 
tcp://localhost/127.0.0.1:61616 shutdown due to a remote error: 
javax.jms.InvalidClientIDException: Broker: consumerBroker - Client: 
networkConnector1_producerBroker_outbound already connected from 
tcp://127.0.0.1:62961


        In the consumer application:

        Async error occurred: javax.jms.InvalidClientIDException: Broker: 
consumerBroker - Client: networkConnector1_producerBroker_outbound already 
connected from tcp://127.0.0.1:62963
javax.jms.InvalidClientIDException: Broker: consumerBroker - Client: 
networkConnector1_producerBroker_outbound already connected from 
tcp://127.0.0.1:62963
                at 
org.apache.activemq.broker.region.RegionBroker.addConnection(RegionBroker.java:223)
                at 
org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85)
                at 
org.apache.activemq.advisory.AdvisoryBroker.addConnection(AdvisoryBroker.java:65)
                at 
org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85)
                at 
org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85)
                at 
org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85)
                at 
org.apache.activemq.security.SimpleAuthenticationBroker.addConnection(SimpleAuthenticationBroker.java:97)
                at 
org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:91)
                at 
org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:715)
                at 
org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConnection(ManagedTransportConnection.java:79)
                at 
org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:139)
                at 
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
                at 
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:150)
                at 
org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
                at 
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
                at 
org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:229)
                at 
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
                at 
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:222)
                at 
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204)
                at java.lang.Thread.run(Thread.java:680)


Is this a regression or a new requirement.  If it's a new requirement, what 
strategy would you recommend to ensure uniqueness in network connector names?

Thanks in advance,
Geoff.

Reply via email to