当代理关闭时,ActiveMQ NMS : connection. start() 使用故障转移协议(protocol)挂起

标签 activemq nms apache-nms

我有使用 nms.activemq 1.5.0 的 C# 应用程序。

当我的应用程序启动时,它会尝试使用故障转移协议(protocol)连接到代理(我在主从配置中有两个代理)。
如果两个代理都因为 connection.start() 而停止我的应用程序而处于等待状态.
我尝试了我在网上找到的所有信息 - 我尝试了故障转移协议(protocol)的每个属性,还尝试了设置连接超时,尝试了 transport.requesttimeout .

我还尝试了更新版本的 nms.activemq,但似乎没有解决问题。

关于什么可能导致此问题或任何解决方法的任何想法?

最佳答案

挖掘谷歌结果后我发现this thread

Tim Bish 在那里回答开发人员说,在 NMS 中有一个前缀 。运输。* 需要添加到所有传输属性中。

我原来的uri是:

failover://(tcp://A,tcp://B)?randomize=true&startupMaxReconnectAttempts=1&timeout=2000

现在我的 URI 是(注意 传输。* 前缀):
failover://(tcp://A,tcp://B)?transport.randomize=true&transport.startupMaxReconnectAttempts=1&transport.timeout=2000

这是有效的,我处理抛出的异常并继续我的应用程序。

享受

关于当代理关闭时,ActiveMQ NMS : connection. start() 使用故障转移协议(protocol)挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10880814/

相关文章:

c# - Apache NMS - 如何确定连接是否已启动

c# - MQ 错误原因 : 2058 randomly starts occurring in C# . NET 客户端在正常工作多天后

c# - 如何获取队列 Apache.NMS 中的消费者数量

java - 带有 ActiveMQ 的 Spring JMS

spring - 如果 ActiveMQ 服务器关闭,您应该如何处理从您的应用程序向 ActiveMQ 发送 JMS 消息的重试?

unit-testing - 使用 JMS (ActiveMQ) 进行单元测试

java - ActiveMQ 未收到来自生产者的消息

.net - .NET 中的 ActiveMQ 连接启动超时