activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott Van Wart <>
Subject Retry queue message delivery to another node after timeout or connection failure
Date Tue, 17 Jul 2018 17:23:20 GMT
I can't for the life of me figure out how to get ActiveMQ Artemis to try
another node for message delivery.  I have a domain-managed wildfly cluster
with 3 nodes:

Wildfly 12 (Artemis 1.5.5) and JDK 1.8.0_131 running on Ubuntu 16.04.  I
started with the defaults.  I deployed an EAR with a single MDB that
listens to a durable queue.  I then connect to a node and send a test
message every 250ms.  I can see the messages appearing round-robin on all
nodes (and JMSDeliveryType is PERSISTENT).

The MDB is configured with dups-ok-acknowledge.  I changed some settings
from the defaults that ship with Wildfly for cluster-connection:


Other relevant settings:


While the test is going on, I unplug the network cable to one of the
nodes.  The other two nodes fail their 3rd node connection in about a
second and start distributing the messages across only the 2 remaining
nodes, which is fine.  But I "lose" about 2-3 messages during this time to
the failed node.  I can leave that failed node unplugged for as long as I
want.  I can even plug the failed node back in and it won't retransmit
these 2-3 messages.  Finally, I restart all the nodes and the 2-3 "lost"
messages are then transmitted (much later) and only to the failed node.

What I really want is for ActiveMQ to quickly retry delivery to another
node.  So if it attempts delivery and the message isn't acknowledged for
750-1000ms, try another node.  I can handle duplicates just fine. Am I
going about this the right way?


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message