我想使用https://activemq.apache.org/failover-transport-reference.html中描述的 ActiveMQ 故障转移传输。
默认的“永远重试”故障转移选项按预期工作。
但是,由于“永远”有时太长,我尝试设置一些选项以便提前终止重试。
例如,在启动时,如果在第一次尝试时无法建立与代理的连接,我想立即终止应用程序。
我尝试了最简单的选择:
failover:tcp://localhost:61616?startupMaxReconnectAttempts=0
但令我惊讶的是,重试仍然“永远”进行。
我尝试了许多其他选项组合,例如
failover:tcp://localhost:61616?startupMaxReconnectAttempts=0&maxReconnectDelay=10&maxReconnectAttempts=0&timeout=10
但没有想要的结果。
我究竟做错了什么?如果代理不可用,如何配置故障转移传输以便在启动时终止重新连接尝试?
我正在使用 ActiveMQ 版本 5.15.9 ( https://hub.docker.com/r/rmohr/activemq ) 和 Apache.NMS.ActiveMQ 库版本 1.8。
相关的代码片段是
var factory = new ConnectionFactory(connectionString);
var connection = factory.CreateConnection();
var session = connection.CreateSession(); // hangs here