Тайм-аут начала подключения ActiveMQ в .NET

У меня есть клиент .Net для ActiveMQ. Я использую 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 (). Таким образом, по истечении этого периода времени возникает исключение, и выполнение может продолжаться. Как избежать такой проблемы?


person Pashec    schedule 28.08.2012    source источник


Ответы (1)


Я нашел правильные параметры uri. Весь uri должен выглядеть так

отработка отказа: (tcp: //127.0.0.1: 61616 /)? transport.startupMaxReconnectAttempts = 2

Но имейте в виду, что если произойдет исключение, клиент ActiveMQ больше не будет пытаться повторно подключиться, и вам нужно будет сделать это самостоятельно.

person Pashec    schedule 28.08.2012