MB 5.4: more then one duplext network connectors to the same remote broker
ciand7 Sep 14, 2010 10:20 AMHi,
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:///127.0.0.1:53394
2010-09-14 16:12:40,298 | INFO | localhost bridge to localhost stopped | org.apache.activemq.network.DemandForwardingBridge | ActiveMQ
Task
===
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.");
c.stop();
}
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?
PS.
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:///10.129.0.55:4125
java.lang.NullPointerException
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.
Thanks.