Hi, I got an Artemis dual mirror setup and basically it works fine. Now I want to test the failover on the client side. I use the following
artemis-jms-client 2.39.0 factory: org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory connection string: (tcp://host:41091,tcp://host:41101)?ha=true&reconnectAttempts=3&useTopologyForLoadBalancing=false&connectionLoadBalancingPolicyClassName=testingground.mq.SequentialConnectionLoadBalancingPolicy Helidon 4.1.6 I use my own ConnectionLoadBalancingPolicy implementation which starts with the first host/connection and then goes to the next one (like the RoundRobin implementation but just always starting with the first one). Everything works fine till I stop the one server instance the client is connected to. I expected that it just creates a new connection and uses the second server instance but it just fails with this: 2025.02.21 10:05:37 INFO org.apache.activemq.artemis.core.client Thread[#91,Thread-0 (ActiveMQ-client-global-threads),5,main]: AMQ214036: Connection closure to devil01/191.0.215.111:41091 has been detected: AMQ219015: The connection was disconnected because of server shutdown [code=DISCONNECTED] 2025.02.21 10:05:48 WARNING org.apache.activemq.artemis.core.client Thread[#91,Thread-0 (ActiveMQ-client-global-threads),5,main]: AMQ212005: Tried 3 times to connect. Now giving up on reconnecting it. 2025.02.21 10:05:48 SEVERE io.helidon.messaging.connectors.jms.JmsConnector Thread[#62,jms-3,5,jms-thread-pool-1]: Error intercepted from channel events java.util.concurrent.CompletionException: io.helidon.messaging.MessagingException: Error during sending JMS message. at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) at io.helidon.common.context.ContextAwareExecutorImpl.lambda$wrap$8(ContextAwareExecutorImpl.java:161) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: io.helidon.messaging.MessagingException: Error during sending JMS message. at io.helidon.messaging.connectors.jms.JmsConnector.lambda$sendingErrorHandler$18(JmsConnector.java:674) at io.helidon.messaging.connectors.jms.JmsConnector.consumeAsync(JmsConnector.java:660) at io.helidon.messaging.connectors.jms.JmsConnector.lambda$consume$16(JmsConnector.java:637) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ... 4 more Caused by: jakarta.jms.JMSException: AMQ219016: Connection failure detected. Unblocking a blocking call that will never get a response at io.helidon.messaging.connectors.jms.shim.ShimUtil.exception(ShimUtil.java:67) at io.helidon.messaging.connectors.jms.shim.ShimUtil.run(ShimUtil.java:42) at io.helidon.messaging.connectors.jms.shim.JakartaMessageProducer.send(JakartaMessageProducer.java:106) at io.helidon.messaging.connectors.jms.JmsConnector.consumeAsync(JmsConnector.java:657) ... 6 more Suppressed: javax.jms.JMSException: AMQ219016: Connection failure detected. Unblocking a blocking call that will never get a response at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:580) at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:465) at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:457) at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.sendFullMessage(ActiveMQSessionContext.java:589) at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.sendRegularMessage(ClientProducerImpl.java:305) at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.doSend(ClientProducerImpl.java:277) at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.send(ClientProducerImpl.java:147) at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.send(ClientProducerImpl.java:129) at org.apache.activemq.artemis.jms.client.ActiveMQMessageProducer.doSendx(ActiveMQMessageProducer.java:483) at org.apache.activemq.artemis.jms.client.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:194) at io.helidon.messaging.connectors.jms.shim.JakartaMessageProducer.lambda$send$6(JakartaMessageProducer.java:106) at io.helidon.messaging.connectors.jms.shim.ShimUtil.run(ShimUtil.java:40) ... 8 more Caused by: ActiveMQUnBlockedException[errorType=UNBLOCKED message=AMQ219016: Connection failure detected. Unblocking a blocking call that will never get a response] ... 20 more Am I doing something wrong? Does an automatic failover to the next server even work with the dual mirror setup? Thanks in advance for any help and advice. Mihael Mihael Schmidt Software Engineering Bauformat Küchen GmbH & Co. KG Kattwinkel 1 | 32584 Löhne | Deutschland Fon: +495732 102-379 Fax: +495732 102-300 Mail: mschm...@bauformat.de<mailto:mschm...@bauformat.de> Internet: www.bauformat.de<http://www.bauformat.de> [cid:Logo_BAUFORMAT_sw_130px_61b65919-4a79-4edc-a81a-8b84d76dc540.png] Umsatzsteuer-Identifikationsnummer: DE 124323068 - Steuer-Nr.: 310/5705/0461 / Finanzamt Bünde - Handelsregister Bad Oeynhausen HRA 1801 Komplementärin: Bauformat Küchen Verwaltungs GmbH - Handelsregister Bad Oeynhausen HRB 1465 Geschäftsführer: Michael Assner, Matthias Berens, Sabine Brockschnieder [cid:Email_Banner_TOP100_2025_low_c7e2850c-d1e8-4332-bf08-dc1c8c4377be.jpg]<https://www.bauformat.de> Wir erfüllen unsere Informationspflichten zum Datenschutz gem. Artt. 13-14 DS-GVO durch Veröffentlichung auf unserer Internetseite unter: www.bauformat.de/datenschutz<http://www.bauformat.de/datenschutz> oder durch Zusendung auf Ihre formlose Anfrage.