Подключение одной очереди к нескольким qmgrs Переполнение стека

я бы хотел подключить одну очередь к нескольким администраторам очередей
(по крайней мере, 2 qmgrs). Допустим, у меня есть qmgrA and qmgrB в качестве администраторов очередей, и это связано с queueName, Я поставлю сообщение «Привет» к queueName, подключенному к qmgrA, а также к другому сообщению «Мир» на qmgrB. Итак, предположим, что queueName содержит «Привет» а также «Мир».

Вопрос в том, как я могу получить эти сообщения одновременно? Можете ли вы дать мне пример фрагмента кода / фрагмента кода, чтобы я по крайней мере имел представление о том, как я могу начать кодирование с этим дизайном.

Замечания: * Я прошу об этом, потому что, например, qmgrA был отключен / отключен по неизвестной причине, по крайней мере qmgrB все еще активен
и будет получать сообщения на queueName даже если qmgrA отключен

Кстати, я использую Websphere MQ v7 C ++.

Заранее спасибо! 🙂

2

Решение

Похоже, вопрос заключается в том, как сделать то, чего не делает IBM MQ. QMgrs не «подключаются» к очередям, они их размещают. Приложения не «подключаются» к очередям, кроме как в абстрактном смысле JMS. Они подключаются к QMgrs, а затем открывают очереди. Однако описанное требование поддержания высокой доступности MQ может быть выполнено с помощью кластеров MQ, аппаратных кластеров, многоканальных QMgrs, общих очередей (только в z / OS) или некоторой их комбинации.

Каждый из двух администраторов очередей в вашем примере содержит локальную копию queueName, Вот несколько сценариев того, как сообщения распределяются в этой ситуации.

PUTтин сообщения

  • Сообщение отправлено queueName приложением, связанным с qmgrA по умолчанию приведет к приземлению сообщения в локальном экземпляре этой очереди.
  • Когда есть локальный экземпляр и кластер MQ, по крайней мере, с одним другим экземпляром, QMgr может быть настроен так, чтобы сообщения могли отправляться в нелокальные экземпляры.
  • когда qmgrA, qmgrB, а также qmgrC находятся в кластере, и qmgrC не размещает локальный экземпляр очереди, сообщения, помещенные в это имя очереди, будут циклически перебираться между экземплярами на qmgrA а также qmgrB ,

GETтин сообщения

  • Посадка сообщения в queueName на qmgrA может быть извлечен из этой очереди только приложением, подключенным к qmgrA,
  • Посадка сообщения в queueName на qmgrB может быть извлечен из этой очереди только приложением, подключенным к qmgrB,
  • Приложение, подключенное к qmgrC не может получать сообщения из очередей, размещенных на qmgrA или же qmgrB,

MQ HA
Требование высокой доступности очереди может быть достигнуто несколькими способами. Некоторые из них обеспечивают возможность восстановления услуг, предоставляемых MQ. Некоторые из них обеспечивают возможность восстановления сообщений, которые могут быть заблокированы в полете. В дополнение к чтению раздел проектирования топологии в руководствах, пожалуйста, смотрите MQ HA презентация от IBM Interconnect 2015.

3

Другие решения

Ваш вопрос действительно имеет большой смысл. Найдите MQ Clustering и MQ Multi-Instance в Центре знаний MQ. http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.con.doc/q017820_.htm

1

По вопросам рекламы [email protected]