3

我有 ActiveMQ 的 .Net 客户端。我正在使用 Apache.NMS 1.5.1.2739 和 Apache.NMS.ActiveMQ 1.5.6.2746

我使用以下代码连接到代理:

var connectionFactory = new ConnectionFactory("failover:tcp://127.0.0.1:61616/?transport.timeout=5000");
IConnection connection = connectionFactory.CreateConnection();
connection.Start();

问题是当没有可用的 ActiveMQ 代理时 connection.Start() 永远挂起。所以 transport.timeout 在这里没有帮助。我想让 Start() 方法超时。因此,在这段时间之后发生异常并且执行可能会进一步进行。如何避免这样的问题?

4

1 回答 1

5

我找到了正确的 uri 参数。整个 uri 应该看起来像这样

故障转移:(tcp://127.0.0.1:61616/)?transport.startupMaxReconnectAttempts=2

但请注意,如果发生异常,ActiveMQ 客户端将不再尝试重新连接,您需要自己进行。

于 2012-08-28T11:14:17.433 回答