【发布时间】:2011-08-02 11:34:49
【问题描述】:
为了尝试缓解在我的应用程序中出现 ActiveMQ 连接问题期间可能出现的任何挂起,我正在考虑将以下参数添加到我的应用程序中的代理连接字符串:
?transport.requesttimeout=10000
根据this resource 的说法,这似乎有助于处理这些事件。
但是,我似乎无法让它与我当前的故障转移连接字符串一起使用,它看起来像这样:
failover:(tcp://masterbroker:61616,tcp://slavebroker:61616)?keepAlive=true
这样添加:
failover:(tcp://masterbroker:61616,tcp://slavebroker:61616)?keepAlive=true&transport.requesttimeout=10000
或者,或者像这样:
failover:(tcp://masterbroker:61616?transport.requesttimeout=10000,tcp://slavebroker:61616?transport.requesttimeout=10000)?keepAlive=true
...两者似乎都导致NMS异常或连接失败。
这似乎是一个相对微不足道的问题,但是如何在这种类型的连接字符串中指定传输特定指令?
【问题讨论】:
-
请看stackoverflow.com/a/10893701/823040。对于故障转移模式,您需要 transport.startupMaxReconnectAttempts、transport.timeout 或相关选项。选项的完整列表:activemq.apache.org/nms/activemq-uri-configuration.html。 Transport.requesttimeout 不是故障转移协议的有效指令。