[ 
https://issues.apache.org/jira/browse/AMQ-4812?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13823790#comment-13823790
 ] 

Sam Parsons commented on AMQ-4812:
----------------------------------

I've experienced the same issue. Looking at the code, in FailoverTransport.java 
doReconnect() it does this:

{code}
                     if (doRebalance) {
                         if (connectedToPriority || 
compareURIs(connectList.get(0), connectedTransportURI)) {
                             // already connected to first in the list, no need 
to rebalance
                             doRebalance = false;
                             return false;
                        } else {
{code}

So if your client is connected to the first broker in the list then it is never 
rebalanced. 

Additionally, when a new broker is added to the network, it is appended to the 
end of the list. This means that everything on the first broker stays 
connected, everything else is rebalanced (possibly to the first broker). Now if 
you add another broker, everything gets rebalanced except clients connected to 
the first broker, which just receives more connections.

In my opinion that check should be removed, because it results in uneven 
rebalancing across a broker network.

> Rebalance not working on 5.8.0
> ------------------------------
>
>                 Key: AMQ-4812
>                 URL: https://issues.apache.org/jira/browse/AMQ-4812
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Transport
>    Affects Versions: 5.8.0
>            Reporter: Wayne Evans
>         Attachments: (Example)IsecStateConsumer.properties, 
> Broker1_activemq.xml, Broker2_activemq.xml
>
>
> Two brokers networked.
> Transport connectors configured on both with:
> rebalanceClusterClients="true" updateClusterClients="true" 
> updateClusterClientsOnRemove="true"
> Clients configured with only Broker 1 in Failover string.
> Clients all connect to 1st Broker when starting up.
> When first broker is stopped all clients fail over to 2nd Broker.
> When 1st Broker is brought back up all clients remain on 2nd Broker.
> Config files from both Brokers and one sample client config attached.
> Related issue - queued messages on 1st Broker that were passed from 2nd 
> broker initially are not consumed after 1st Broker is brought back up as 
> rules prevent them from being passed back to 2nd Broker where client 
> consumers are attached.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to