[
https://issues.apache.org/jira/browse/ARTEMIS-684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15433619#comment-15433619
]
ASF GitHub Bot commented on ARTEMIS-684:
----------------------------------------
Github user clebertsuconic commented on the issue:
https://github.com/apache/activemq-artemis/pull/724
I have sent another PR: #730
Can you take a look please? Please close this one when that one is merged.
I'm not adding your example as I don't see much value for the distribution.
(It's not even failing.. I would if the example failed).
Notice that I added a failing test validating the distribution issue.
> Randoms are not equally distributed, causing Load balance to fail over
> multiple VMs
> -----------------------------------------------------------------------------------
>
> Key: ARTEMIS-684
> URL: https://issues.apache.org/jira/browse/ARTEMIS-684
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Affects Versions: 1.4.0
> Reporter: Chen Maoqian
> Priority: Critical
> Attachments: clustered-static-discovery-multi.zip
>
>
> When we use each Connection Factory create a single Connection, Client
> connection are not balanced across cluster with any load balancing policy.
> you can modify the cluster-static-discovery example to reproducer the
> solution.
> *Scenario*
> There two nodes in cluster. Nodes in cluster are connected and both nodes
> have same jms destinations and connection factory defined like the following
> one
> {noformat}
> <connection-factory name="RemoteConnectionFactory"
> connectors="http-connector"
> entries="java:jboss/exported/jms/RemoteConnectionFactory" ha="true"
> connection-ttl="120000" call-timeout="60000" block-on-acknowledge="true"
> retry-interval="1000" reconnect-attempts="-1"
> connection-load-balancing-policy-class-name="org.apache.activemq.artemis.api.core.client.loadbalance.RandomConnectionLoadBalancingPolicy"/>
> {noformat}
> There are clients connecting to cluster. With
> _RandomConnectionLoadBalancingPolicy_, I would expect that connections are
> randomly distributed among the nodes in cluster. However, when I list
> connections on both nodes
> (/subsystem=messaging-activemq/server=default:list-connection-ids), all
> connections are on one server.
> Method {{private TransportConfiguration selectConnector()}} in class
> {{ServerLocatorImpl}} checks whether the {{topologyArray}} is null and makes
> decision between choosing connector to other node in topology or initial
> connector of connection factory. In method {{private TransportConfiguration
> selectConnector()}} {{topologyArray}} is still null, so clients make
> connection using initial connector. It seems like {{topologyArray}} is only
> updated during {{notifyNodeUp/Down}} methods.
> Could you please explain how is this client connection balancing supposed to
> work?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)