1 Reply Latest reply on Nov 22, 2010 9:52 AM by Sean O'Callaghan

    MB 5.4: more then one duplext network connectors to the same remote broker

    Andrey Utkin Newbie



      We have 3 duplex network connectors (with different names) from broker A to the remote broker B. Those NC shares different queues with different TTLs and conduitSubscriptions property.


      With MB 5.3 there is no problems to create multiple duplex NC to the same remote broker. But MB 5.4 remote broker closes NC connectors as duplicate:


      2010-09-14 16:12:40,289 | WARN  | An existing duplex active connection already exists for this broker (ID:gold-49211-1284465959387-0:0).

      Stopping it. | org.apache.activemq.broker.TransportConnection | ActiveMQ Transport: tcp:///

      2010-09-14 16:12:40,298 | INFO  | localhost bridge to localhost stopped | org.apache.activemq.network.DemandForwardingBridge | ActiveMQ




      We have not found any notes about duplex NC restrictions in 5.4.


      But it seems that TransportConnection.processBrokerInfo suppress it:


      if ((c != this) && (remoteBrokerId.equals(c.getDuplexRemoteBrokerId()))) {

      LOG.warn("An existing duplex active connection already exists for this broker (" + remoteBrokerId + "). Stopping it.");





      Could somebody clarify usage of multiple duplex NC in 5.4? Is there any possibilities to create multiple duplex NC to the same remote broker? Will this feature be added/fixed on new releases or not?





      Some time there is NPE in TransportConnection.processBrokerInfo:

      2010-09-14 11:02:50,531 | ERROR | Creating duplex network bridge | org.apache.activemq.broker.TransportConnection | ActiveMQ Transport: tcp:///


      at org.apache.activemq.broker.TransportConnection.processBrokerInfo(TransportConnection.java:1193)

      at org.apache.activemq.command.BrokerInfo.visit(BrokerInfo.java:125)

      at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:309)

      at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185)

      at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)

      at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)

      at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:217)

      at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)

      at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:219)

      at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:201)

      at java.lang.Thread.run(Unknown Source)



      This exception occurs rarely. Currently we have not exact case to reproduce it.