Я новичок в IBM MQ и занимаюсь исследованием одного из требований. У меня есть два канала MQ в диспетчере очередей, к которым я буду подключаться из клиента JMS (автономное приложение Java), и мне нужно настроить их в файле CCDT.
Когда основной канал MQ, к которому я подключен, не работает, он должен подключиться к вторичному резервному каналу MQ после ожидания в течение определенного времени при попытке повторно подключиться к основному каналу MQ.
Могу ли я настроить это время ожидания в файле CCDT или в классе java клиента JMS?
Я просмотрел некоторую документацию IBM и вижу методы setCCDTURL() и setConnectionTimeout() для фабричного объекта, я не уверен, что это соответствует моему требованию.
@joshmc Я ищу варианты реализации логики времени ожидания либо в коде Java, либо в файле CCDT. Канал 1 и канал 2 находятся на разных серверах, указывая на разные URL-адреса.
Существуют различные способы работы встроенного переподключения, один из которых заключается в том, что на одном канале (если имя канала одинаково в обоих менеджерах очередей) вы можете указать разделенный запятыми список записей ip (порт) [или dns (порт)] . MQ будет пробовать их по порядку даже при начальном подключении, если повторное подключение включено и требуется, оно будет снова запускаться с первого IP-адреса при каждой попытке повторного подключения. Повторное подключение продлится период времени, по умолчанию это 30 минут, в течение этого времени он будет периодически пытаться переподключиться. Обратите внимание, если имя qmgr отличается на двух разных серверах, вам нужно будет указать QMNAME*.
Другой способ - иметь несколько записей в CCDT с QMNAME, опять же, если фактические имена администраторов очередей отличаются, выберите значение для использования, которое является одинаковым для всех каналов, которые вы бы указали QMNAME*, чтобы сообщить мне, что он может подключаться к любому администратору очередей. прослушивание на целевом сервере. Это позволит вам указывать записи с разными именами каналов.
В любом случае вы должны убедиться, что канал на втором сервере недоступен, если вы не хотите подключаться к нему, когда основной сервер работает. В CCDT, если вы используете несколько записей, вы можете добавить веса, чтобы он предпочитал один канал другому, если у вас есть несколько имен в только что введенном имени, то в том порядке, в котором вы хотите.
@JoshMc спасибо за ваш вклад. В моем случае у меня разные менеджеры очередей с разными каналами. для настройки времени переподключения на стороне java. Могу ли я использовать setConnectionTimeout() для объекта фабрики MQ? или Можем ли мы настроить это в файле CCDT. И вы упомянули, что мы можем добавить веса, чтобы предпочесть один канал другому. не могли бы вы уточнить это. как это обнаруживает, что первичный включен и переключается обратно со вторичного. Не могли бы вы предоставить больше информации об этом.




Вы хотите, чтобы JMS использовала логику автоматического переподключения MQ, или вы будете обрабатывать переподключение? Канал 1 и канал 2 находятся на разных серверах (не могли бы вы указать другое имя пользователя)?