This test is for 3 nodes with 2 Artemis instances each, NOT colocated. There are 3 live-backup pairs in this setup. I'm adding iptable rules on my machine, to not let it communicate to other machines to simulate a network split.
iptables -I INPUT -d <ip> -j DROP iptables -I OUTPUT -d <ip> -j DROP Machine 1 = Master1, Slave1 Machine 2 = Master2, Slave2 Machine 3 = Master3, Slave3 Backup of Master1 is Slave2. Backup of Master2 is Slave3. Backup of Master3 is Slave1. So, I don't know if this behavior is documented or not - I'm adding iptable rules on Machine1 to drop Machine2. So, Machine1 and Machine2 can't communicate with each other, but both can communicate with Machine3. After I add the iptable rules, (my assumption is) Master1 reports to the cluster that it can't communicate with Master2, and hence, Slave3 comes live (probably because Master2 is removed from the cluster). So, Master1, Master3, Slave3 become the live nodes of the cluster. Master2, and Slave2 are also listening, but they aren't part of the cluster. This behavior is consistent across all cases, based on which machine you add the iptable rules to. So, if I had done the same thing and added iptable rules on Machine2 to block Machine1, then Machine1 would've been removed from the cluster. And, after I flush the iptable rules, the same configuration stays and the original config (Master1 - Master2 - Master3) doesn't become live again. Ideally, Slave3 should failback to Master2 as there is no Network split anymore and both Machines can communicate with each other, but it won't work unless I restart the brokers. -- Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html