Message loss during Artemis MQ failover
19:55 04 Jan 2026

I’m using Artemis MQ version 2.31.2 and have deployed three MQ servers: Primary Host A, Primary Host B, and Backup Host C.

Host A and Host C form an active-backup pair and are used by consumers; Host B is used by producers.

Repro Steps:

  1. Start producer continuously sending persistent Topic messages

  2. Start consumer continuously consuming messages

  3. Stop MQ service on Host A (trigger failover to Host C)

  4. Stop producer from sending messages

Result: Producer sent 100 messages, but consumer only received 98 messages (2 messages lost)

Both replication and shared-store modes reproduce this issue. Below is the replication configuration:

Producer connection URI:

message.server.uri=failover:(tcp://localhost:61617)?jms.useAsyncSend=true&jms.useCompression=true&timeout=3000&randomize=false&maxReconnectDelay=1000&useExponentialBackOff=false

Consumer connection URI:

message.server.uri=failover:(tcp://localhost:61616,tcp://localhost:61618)?jms.useAsyncSend=true&jms.useCompression=true&timeout=3000&randomize=false&maxReconnectDelay=1000&useExponentialBackOff=false

broker.xml of Primary Host A

      
         tcp://artemis-primary-1:61616
         tcp://artemis-primary-1:61616
         tcp://artemis-primary-2:61616
         tcp://artemis-backup-1:61616
      

      
         
            
               ha-pair
               true
               1
            
         
       

      user
      pwd
      
         
            artemis
            ON_DEMAND
            1
            
               p1
               p2
               b3
            
         
      

broker.xml of Backup Host C

      
         tcp://artemis-backup-1:61616
         tcp://artemis-primary-1:61616
         tcp://artemis-primary-2:61616
         tcp://artemis-backup-1:61616
      

      
         
           
               ha-pair
               true
               true
               1
           
         
      

      user
      pwd
      
         
            artemis
            ON_DEMAND
            1
            
               p1
               p2
               b3
            
         
      
activemq-artemis