Dear ActiveMQ Artemis Team, I’m currently setting up a two-node ActiveMQ Artemis cluster using colocated replication. Each server hosts a primary broker and is expected to run a backup for the other node. However, I'm encountering an issue where the backups are not being launched, even though the configuration seems correct.
Here is a summary of the setup: - Node 1 : cluster name "cluster-a", expects to host backup for Node 2 - Node 2 : cluster name "cluster-b", expects to host backup for Node 1 - Replication is configured with `<colocated>` HA policy and `backup-port-offset=3` - Each broker has a unique cluster-connection name and connects to the other via static connectors - Both brokers start successfully and see each other in the cluster topology Despite this, no backup starts on either node. In the logs, I can see messages such as: AMQ221000: Backup message broker is starting... AMQ221049: Activating Replica for node: ... AMQ222162: Moving data directory .../colocated_backup_01 to .../oldreplica.1 I have already tried the following: - Deleted all `colocated_backup_*` and `oldreplica.*` directories before startup - Ensured ports (61616/61619) are open and not used by other processes - Started nodes in correct order (primary first, then peer) Still, the backup never binds to port 61619 or shows up in the topology. Could you please advise what might be causing this issue, or if there is a known bug or caveat with colocated replication in this setup? some logs : bin/artemis check cluster --user admin --password admin Connection brokerURL = tcp://localhost:61616 ******************************************************************************************************************************* nodeID | primary | primary local time | backup 6c659d11-573f-11f0-8aed-860000883885 | tcp://node1:61616 | 2025-07-10 12:36:37 | null 6c54861a-573f-11f0-82fc-860000cab0fe | tcp://node2:61616 | 2025-07-10 12:36:37 | null Time variance in the cluster is 18 milliseconds ******************************************************************************************************************************* --> Verifying Topology for NodeID 6c659d11-573f-11f0-8aed-860000883885, primary = tcp://node1:61616, backup = null verification on primary tcp://node1:61616 ok! --> Verifying Topology for NodeID 6c54861a-573f-11f0-82fc-860000cab0fe, primary = tcp://node2:61616, backup = null verification on primary tcp://node2:61616 ok! Jul 10 12:38:07 test-node104 apache-artemis[2653780]: 2025-07-10 12:38:07,467 INFO [org.apache.activemq.artemis.core.server] AMQ221060: Sending quorum vote request to 10.56.58.7/10.56.58.7:61616: RequestBackupVote [backupsSize=-1, nodeID=null, backupAvailable=false] Jul 10 12:38:07 test-node104 apache-artemis[2653780]: 2025-07-10 12:38:07,470 INFO [org.apache.activemq.artemis.core.server] AMQ221061: Received quorum vote response from 10.56.58.7/10.56.58.7:61616: RequestBackupVote [backupsSize=0, nodeID=6c54861a-573f-11f0-82fc-860000cab0fe, backupAvailable=true] Conf: <connectors> <connector name="backup-connector">tcp://node1:61616</connector> <connector name="self-connector">tcp://node2:61616</connector> </connectors> <cluster-connections> <cluster-connection name="cluster-a"> <connector-ref>self-connector</connector-ref> <retry-interval>1000</retry-interval> <use-duplicate-detection>true</use-duplicate-detection> <message-load-balancing>ON_DEMAND</message-load-balancing> <max-hops>1</max-hops> <static-connectors> <connector-ref>backup-connector</connector-ref> <connector-ref>self-connector</connector-ref> </static-connectors> </cluster-connection> </cluster-connections> <ha-policy> <replication> <colocated> <request-backup>true</request-backup> <max-backups>1</max-backups> <backup-request-retries>-1</backup-request-retries> <backup-request-retry-interval>5000</backup-request-retry-interval> <backup-port-offset>3</backup-port-offset> <primary> <check-for-active-server>true</check-for-active-server> </primary> <backup> <allow-failback>true</allow-failback> </backup> <excludes> <connector-ref>self</connector-ref> </excludes> </colocated> </replication> </ha-policy> <connectors> <connector name="backup-connector">tcp://node2:61616</connector> <connector name="self-connector">tcp://node1:61616</connector> </connectors> <cluster-connections> <cluster-connection name="cluster-a"> <connector-ref>self-connector</connector-ref> <retry-interval>1000</retry-interval> <use-duplicate-detection>true</use-duplicate-detection> <message-load-balancing>ON_DEMAND</message-load-balancing> <max-hops>1</max-hops> <static-connectors> <connector-ref>backup-connector</connector-ref> <connector-ref>self-connector</connector-ref> </static-connectors> </cluster-connection> </cluster-connections> <ha-policy> <replication> <colocated> <request-backup>true</request-backup> <max-backups>1</max-backups> <backup-request-retries>-1</backup-request-retries> <backup-request-retry-interval>5000</backup-request-retry-interval> <backup-port-offset>3</backup-port-offset> <primary> <check-for-active-server>true</check-for-active-server> </primary> <backup> <allow-failback>true</allow-failback> </backup> <excludes> <connector-ref>self</connector-ref> </excludes> </colocated> </replication> </ha-policy> Best regards, Pierre