Hi folks,

consider the following simple situation:


consumer  ----- broker A                           broker C -------------
consumer
                                   \                       /
                                     \                   /
                                       \               /
                                          broker B
                                              |
                                              |
                                          producer


-> So i want to start a producer which sends messages to broker B. 
-> Those messages should be sent to broker A and C.
-> The consumers on broker A and C should receive these messages.

Configuration for B is quite simple:

 <transportConnectors>
       <transportConnector name="local_in__client"
uri="tcp://localhost:61616"/>
    </transportConnectors>

    <networkConnectors>
      <networkConnector name="remote_out"
uri="static://(tcp://broker_A:61626,tcp://broker_C:61626)" networkTTL="5" />
    </networkConnectors>


Broker_A looks simple with only two transport connectors:

    <transportConnectors>
       <transportConnector name="remote_in__broker"
uri="tcp://localhost:61626"/>
       <transportConnector name="local_in__client"
uri="tcp://localhost:61616"/>
    </transportConnectors>

Broker_C looks looks exactly the same:

    <transportConnectors>
       <transportConnector name="remote_in__broker"
uri="tcp://localhost:61626"/>
       <transportConnector name="local_in__client"
uri="tcp://localhost:61616"/>
    </transportConnectors>

But when i now start all three brokers, broker_B gives me the following
errors:

INFO  BrokerService                  - ActiveMQ JMS Message Broker
(localhost, ID:esf-proto-2-1087-1201112791726-0:0) started
ERROR Service                        - Async error occurred:
javax.jms.InvalidClientIDException: Broker: localhost - Client:
NC_localhost_inboundlocalhost already connected from vm://localhost#0
javax.jms.InvalidClientIDException: Broker: localhost - Client:
NC_localhost_inboundlocalhost already connected from vm://localhost#0
        at
org.apache.activemq.broker.region.RegionBroker.addConnection(RegionBroker.java:205)
        at
org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:81)
        at
org.apache.activemq.advisory.AdvisoryBroker.addConnection(AdvisoryBroker.java:71)
        at
org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:81)
        at
org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:91)
        at
org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:693)
        at
org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:125)
        at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:319)
        at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:216)
        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:232)
        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://localhost#2 and tcp://smcexp/172.18.96.190:61626 shutdown due to a
local error: javax.jms.InvalidClientIDException: Broker: localhost - Client:
NC_localhost_inboundlocalhost already connected from vm://localhost#0

When i try just one direction for example like this:

consumer  ----- broker A                           
                                   \                       
                                     \                   
                                       \               
                                          broker B
                                              |
                                              |
                                          producer

via changing the configuration of broker_B from:

   <networkConnectors>
      <networkConnector name="remote_out"
uri="static://(tcp://broker_A:61626,tcp://broker_C:61626)" networkTTL="5" />
    </networkConnectors>

to

   <networkConnectors>
      <networkConnector name="remote_out"
uri="static://(tcp://broker_A:61626)" networkTTL="5" />
    </networkConnectors>

everything works fine!

So i guess the error comes from the configuration of Broker_B, caused by the
line:

    <networkConnectors>
      <networkConnector name="remote_out"
uri="static://(tcp://broker_A:61626,tcp://broker_C:61626)" networkTTL="5" />
    </networkConnectors>

But i don't see anything wrong with it?

What am i doing wrong?



-- 
View this message in context: 
http://www.nabble.com/Howto-send-messages-to-multiple-brokers--tp14806636s2354p14806636.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to