You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Laurent Bigonville (JIRA)" <ji...@apache.org> on 2018/03/07 16:56:00 UTC

[jira] [Updated] (ARTEMIS-1733) RoundRobinConnectionLoadBalancingPolicy always connect to the 1st broker at startup

     [ https://issues.apache.org/jira/browse/ARTEMIS-1733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Laurent Bigonville updated ARTEMIS-1733:
----------------------------------------
    Description: 
Hi,

When using the client-side-load-balancing from apache activemq artemis examples on my own setup (2 RH amq) I see that the first connection is always going to the same broker. The documentation says that RoundRobinConnectionLoadBalancingPolicy should 1st pick up a random broker and then do round-robin, but that 1st step doesn't seems to work.

I've the the following string in the jndi.properties and starting the example with mvn -PnoServer verify:

{{java.naming.factory.initial=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory}}
{{ connectionFactory.ConnectionFactory=tcp://foo.example.com?user=user;password=password}}
{{ queue.queue/exampleQueue=exampleQueue}}

Adding some printnl() in the select() function of RoundRobinConnectionLoadBalancingPolicy, I see that pos = RandomUtil.randomInterval(0, max); is being called with max value of 1 the 1st time(should be 2 as there are two servers). The subsequent calls to that functions show that max value is then set to 2 as expected.

This explains why I always get my applications to connect to the same broker.

  was:
Hi,

When using the client-side-load-balancing from apache activemq artemis examples on my own setup (2 RH amq) I see that the first connection is always going to the same broker. The documentation says that RoundRobinConnectionLoadBalancingPolicy should 1st pick up a random broker and then do round-robin, but that 1st step doesn't seems to work.

I've the the following string in the jndi.properties and starting the example with mvn -PnoServer verify:

{{java.naming.factory.initial=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory}}

{{connectionFactory.ConnectionFactory=tcp://foo.example.com?user=user;password=password}}

{{queue.queue/exampleQueue=exampleQueue}}

Adding some printnl() in the select() function of RoundRobinConnectionLoadBalancingPolicy, I see that pos = RandomUtil.randomInterval(0, max); is being called with max value of 1 the 1st time(should be 2 as there are two servers). The subsequent calls to that functions show that max value is then set to 2 as expected.

This explains why I always get my applications to connect to the same broker.


> RoundRobinConnectionLoadBalancingPolicy always connect to the 1st broker at startup
> -----------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-1733
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1733
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>            Reporter: Laurent Bigonville
>            Priority: Major
>
> Hi,
> When using the client-side-load-balancing from apache activemq artemis examples on my own setup (2 RH amq) I see that the first connection is always going to the same broker. The documentation says that RoundRobinConnectionLoadBalancingPolicy should 1st pick up a random broker and then do round-robin, but that 1st step doesn't seems to work.
> I've the the following string in the jndi.properties and starting the example with mvn -PnoServer verify:
> {{java.naming.factory.initial=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory}}
> {{ connectionFactory.ConnectionFactory=tcp://foo.example.com?user=user;password=password}}
> {{ queue.queue/exampleQueue=exampleQueue}}
> Adding some printnl() in the select() function of RoundRobinConnectionLoadBalancingPolicy, I see that pos = RandomUtil.randomInterval(0, max); is being called with max value of 1 the 1st time(should be 2 as there are two servers). The subsequent calls to that functions show that max value is then set to 2 as expected.
> This explains why I always get my applications to connect to the same broker.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)