Подключение ActiveMQCPP.start () вешает трубку


Я использую ActiveMQ CPP 5.2.3, если это имеет значение.

У меня есть производитель JMS, который подключается с помощьюаварийного перехода к сети брокеров JMS. Когда я вызываю connection - >start (), он вешает трубку (см. AMQ-2114 ).

Если я пропускаю соединение start () и вызываю соединение - > createSession (), то этот вызов тоже блокируется.

Требование состоит в том, что мое приложение будет вечно пытаться подключиться к брокеру(ам).

Любой предложения/обходные пути?

Примечание :

Это не дубликат здесь , так как я говорю о C++ и таких решениях, как embedded broker, spring не доступны в C++.

1 3

1 ответ:

Это нормально, когда соединение ожидает транспорта для подключения к брокеру. Метод start должен отправить брокеру идентификационную информацию клиента перед любой другой операцией, поэтому при отсутствии соединения он должен быть заблокирован. Вы можете установить некоторые параметры для транспорта отработки отказа, например параметр startupMaxReconnectAttempts, чтобы контролировать, как долго он будет пытаться подключиться, прежде чем сообщить об ошибке. Смотрите конфигурацию URI Страница:

Http://activemq.apache.org/cms/configuring.html