При настройке MQQueueConnectionFactory
мы инициализировать его следующим образом:Разрешено ли более одного менеджера очереди на хост/порт?
MQQueueConnectionFactory factory = new MQQueueConnectionFactory();
factory.setQueueManager(queueManager);
factory.setTransportType(CommonConstants.WMQ_CM_CLIENT);
factory.setHostName(host);
factory.setPort(port);
factory.setChannel(channel);
Особенно мы устанавливаем имя менеджера очередей. Из этого шаблона кажется, что имя менеджера очереди необходимо для полной идентификации диспетчера очереди. Можно было бы сделать вывод, что на том же хосте и порту может случиться другой менеджер очереди. Это возможно?
Однако при установке the connection name list указать заново цели не имя менеджера очереди необходимо:
public void setConnectionNameList(java.lang.String hosts) throws javax.jms.JMSException
Определяет хосты, к которым клиент будет пытаться подключиться к после его разрыва соединения , Список имен соединений представляет собой разделенный запятыми список пар портов хоста/ip. например. 127.0.0.1 (1414), host2.example.com (1400) Значение по умолчанию этого свойства является 'локальным (1414)' Нулевого или пустая строка для обозначения Localhost (1414)
При установке в client reconnect options два варианта, как представляется, важное значение в этом контексте:
- WMQ_CLIENT_RECONNECT - Повторное подключение к любому из менеджеров очередей, указанных в списке имя подключения
- WMQ_CLIENT_RECONNECT_Q_MGR - Подключитесь к одному менеджеру очередей мы были первоначально подключен к. Это вызовет MQRC_RECONNECT_QMID_MISMATCH, если менеджер очереди, к которому он пытается подключиться (указан в списке имен соединений), имеет другой QMID для менеджера очереди, изначально связанного с.
Эти Документации делают не ясно, если несколько менеджеров очередей за тот же хост/порт возможны. Сравните это с Oracle, где несколько сервисов могут обслуживаться одним и тем же слушателем.
У нас есть два менеджера очередей, которые прослушивают разные хосты/порты, которые имеют разные имена. Мы хотим использовать один из этих менеджеров очереди как диспетчер отказоустойчивости в списке имен соединений. Вопрос в том, что диспетчер очереди однозначно идентифицирован только хостом и портом?
Спасибо за участие и принять. Обратите внимание на обновления, сделанные позже с указателями на соответствующие ссылки для документов. Группы CCDT - это, в основном, то, что нужны именам общих QMgr, поэтому хорошо понять, даже если они не используются. –