ActiveMQ NMS:使用transport.requesttimeout和故障转移传输

为了尝试缓解我的应用程序中ActiveMQ连接问题期间可能出现的任何挂起,我正在考虑将以下参数添加到我的应用程序中的代理连接字符串:
?transport.requesttimeout=10000
根据这个资源,这看起来好像有助于处理这些事件。 但是,我似乎无法使用我当前的故障转移连接字符串,如下所示:
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异常或连接失败。 这似乎是一个相对简单的问题,但是如何在这种类型的连接字符串中指定传输特定指令?     
已邀请:
您应该在询问这些问题时始终添加您正在使用的NMS.ActiveMQ版本,因为版本之间的行为会有所不同。假设您使用的是最新版本,如果您尝试连接到代理并且在大约10秒后它没有运行,那么我希望从第一种形式出现NMSException,这就是URI告诉它要做的事情,第二种形式URI无效,因为适用于故障转移配置的内部URI的唯一选项是被调用的传输类型,在本例中为TCP。 最后退一步并解释一下你在这里要完成的工作,因为我不知道你应用请求超时选项的原因是什么。在大多数情况下,我不会推荐这个选项。 此外,keepAlive选项在此处没有任何影响,因为它未应用于tcp传输,因此它将被忽略。除了tcp套接字保持活动几乎没用,因为它只会每两个小时左右启动一次,tcp传输将为你做自己的听力,除非你禁用不活动监视器,所以他们不需要keepAlive = true。 如果您可以提供更多信息,了解您所看到的异常是什么,或者您尝试使用请求超时解决了什么问题,我可以更好地回答您的问题。 -Tim www.fusesource.com     
而不是
transport.requesttimeout=10000
使用
connection.RequestTimeout=10000
    

要回复问题请先登录注册