Hi all, after some further research I found the problem. I didn't specify the parameter "failoverAttempts" on the connection url. After adding it everything worked fine.
Have a great day! Mihael PS: ... and the error is also described in the docs. 😉 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. ________________________________ Von: Schmidt, Mihael Gesendet: Freitag, 21. Februar 2025 10:27 An: users@activemq.apache.org <users@activemq.apache.org> Betreff: Artemis Client Connection String for Dual Mirror 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 host/xxx.xxx.xxx.xxx: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