Using incorrect peer list in failover transport
-----------------------------------------------

                 Key: AMQCPP-351
                 URL: https://issues.apache.org/jira/browse/AMQCPP-351
             Project: ActiveMQ C++ Client
          Issue Type: Bug
          Components: Transports
    Affects Versions: 3.2.4
            Reporter: Adam Sussman
            Assignee: Timothy Bish


In the failover transport, the broker hands the client a list of known peer 
brokers the client can attempt upon connection failure.  In the Java client 
libs, this list of peers is obtained from the ConnectionControl object and that 
list is subject to various configuration controls on the broker.  The C++ 
client gets its list from the BrokerInfo object who's list is NOT controlled at 
all by broker settings and which also retains query string artifacts that 
should not be used (see AMQ-3124).

The list of peers the C++ client is using is not correct and not under the same 
controls as the list the Java client is using. The C++ failover transport 
should be altered to use the same source of peer data as the Java client, the 
ConnectionControl object.

In currently released versions (3.2.4 and older), the entire reconnect list 
comes from BrokerInfo.getPeerBrokerInfos.  In trunk, the list comes from 
BrokerInfo.getPeerBrokerInfos PLUS ConnectionControl.getReconnectTo.  However, 
the Java client gets its list from ConnectionControl.getConnectedBrokers plus 
ConnectionControl.getReconnectTo and does not use BrokerInfo at all.

At a minimum, the usage of BrokerInfo.getPeerBrokerInfos needs to be removed in 
FailoverTransportListener.cpp and usage of getConnectedBrokers needs to be 
added to FailoverTransport.cpp:handleConnectionControl.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to