You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Iliya Grushevskiy <il...@gmail.com> on 2022/05/24 11:45:00 UTC

Message loose with HA replication

Hi.

I’m trying to implement ONLY ONCE delivery with Artemis (tested on both 2.19.1 and 2.22.0). 
I have HA cluster with primary node A and replica node B. And a client. All of them are on different servers.
The scenario:

- Client connects to primary node A and start sending messages
- Network between A and B is switching off
- Network between A and client is switching off
- Client failover to B and continue sending messages

The client connects with following parameters:
- reconnectAttempts = -1
- confirmationWindowSize = -1

The client is transactional.
The client adds unique _AMQ_DUPL_ID to each message before sending.
In case of error the client continues trying to send message in same session and with same _AMQ_DUPL_ID.
In case of ActiveMQDuplicateIdException the client stops retrying and continue sending pending messages.

As a result I am loosing one or more messages that where send just before failover (usually I receive ActiveMQTransactionOutcomeUnknownException).

As I understand that is due to async replication that may not receive one or more message before network loos while client will receive ACK from primary server.

Is it an expected behavior or am I missing something?

Regards
Iliya Grushevskiy