Fail-back only works for a live/backup pair. It doesn't work for a live/backup/backup triplet.
In your use-case there are 3 broker instances configured as live, backup, backup. However, a backup server is owned by only one live server. This means that when the 3 broker instances are started there will be 1 live-backup pair and a "left-over" backup which will be in a kind of idle state waiting to attach to a live broker without a backup. Then if the live broker fails the live broker's backup will take over and become live and the other backup will now become the backup of the server which just became live. Once the broker instance which failed is restarted it will attempt to register itself as a backup of the now-live broker and initiate fail-back. However, since the now-live broker already has a backup it will reject the registration message from the original live because it already has a backup, and therefore fail-back will not occur. To be clear, a live can only replicate to a *single* backup at a time. It's not really clear to me what benefit multiple backups provide given the fact that they prevent fail-back from working. Justin On Tue, Mar 20, 2018 at 8:36 AM, jarek.przygodzki < jarek.przygod...@gmail.com> wrote: > Hi, > I'm trying to setup 3-node Artemis (2.5.0) HA cluster (1 master and 2 > slaves) with replication, automatic failover/failback and static > connectors. > It works fine with just one slave, but with 2 slaves strange thing happens > - failback doesn't work, when original master comes back online both > servers > claim to be live > - sometimes one of the servers gets stuck - only "Server is stopped" > messages appear in the log > > Each broker configuration is created with > > /opt/apache-artemis/bin/artemis create artemis \ > --home /opt/apache-artemis \ > --user artemis \ > --password simetraehcapa \ > --role amq \ > --require-login \ > --cluster-user artemisCluster \ > --cluster-password simetraehcaparetsulc > > with some changes to setup cluster > > *node artemis-1* > > <name>artemis-1</name> > <connectors> > <connector name="artemis-1">tcp://artemis-1:61616</connector> > <connector name="artemis-2">tcp://artemis-2:61616</connector> > <connector name="artemis-3">tcp://artemis-3:61616</connector> > </connectors> > > <cluster-connections> > <cluster-connection name="replication-cluster"> > <connector-ref>artemis-1</connector-ref> > <retry-interval>1000</retry-interval> > <retry-interval-multiplier>2</retry-interval-multiplier> > <max-retry-interval>8000</max-retry-interval> > <use-duplicate-detection>true</use-duplicate-detection> > <message-load-balancing>OFF</message-load-balancing> > <max-hops>1</max-hops> > <static-connectors allow-direct-connections-only="true"> > <connector-ref>artemis-2</connector-ref> > <connector-ref>artemis-3</connector-ref> > </static-connectors> > </cluster-connection> > </cluster-connections> > <ha-policy> > <replication> > <master> > <check-for-live-server>true</check-for-live-server> > </master> > </replication> > </ha-policy> > > *node artemis-2* > > <connectors> > <connector name="artemis-2">tcp://artemis-2:61616</connector> > <connector name="artemis-1">tcp://artemis-1:61616</connector> > <connector name="artemis-3">tcp://artemis-3:61616</connector> > </connectors> > <cluster-connections> > <cluster-connection name="replication-cluster"> > <connector-ref>artemis-2</connector-ref> > <retry-interval>1000</retry-interval> > <retry-interval-multiplier>2</retry-interval-multiplier> > <max-retry-interval>8000</max-retry-interval> > <use-duplicate-detection>true</use-duplicate-detection> > <message-load-balancing>OFF</message-load-balancing> > <max-hops>1</max-hops> > <static-connectors allow-direct-connections-only="true"> > <connector-ref>artemis-1</connector-ref> > <connector-ref>artemis-3</connector-ref> > </static-connectors> > </cluster-connection> > </cluster-connections> > <ha-policy> > <replication> > <slave> > <allow-failback>true</allow-failback> > </slave> > </replication> > </ha-policy> > > > *node artemis-3* > > <name>artemis-3</name> > <connectors> > <connector name="artemis-3">tcp://artemis-3:61616</connector> > <connector name="artemis-1">tcp://artemis-1:61616</connector> > <connector name="artemis-2">tcp://artemis-2:61616</connector> > </connectors> > <cluster-connections> > <cluster-connection name="replication-cluster"> > <connector-ref>artemis-3</connector-ref> > <retry-interval>1000</retry-interval> > <retry-interval-multiplier>2</retry-interval-multiplier> > <max-retry-interval>8000</max-retry-interval> > <use-duplicate-detection>true</use-duplicate-detection> > <message-load-balancing>OFF</message-load-balancing> > <max-hops>1</max-hops> > <static-connectors allow-direct-connections-only="true"> > <connector-ref>artemis-1</connector-ref> > <connector-ref>artemis-2</connector-ref> > </static-connectors> > </cluster-connection> > </cluster-connections> > <ha-policy> > <replication> > <slave> > <allow-failback>true</allow-failback> > </slave> > </replication> > </ha-policy> > > I am happy to provide further information if required. > > > > -- > Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User- > f2341805.html >