я бы хотел подключить одну очередь к нескольким администраторам очередей
(по крайней мере, 2 qmgrs). Допустим, у меня есть qmgrA and qmgrB
в качестве администраторов очередей, и это связано с queueName
, Я поставлю сообщение «Привет» к queueName, подключенному к qmgrA, а также к другому сообщению «Мир» на qmgrB. Итак, предположим, что queueName содержит «Привет» а также «Мир».
Вопрос в том, как я могу получить эти сообщения одновременно? Можете ли вы дать мне пример фрагмента кода / фрагмента кода, чтобы я по крайней мере имел представление о том, как я могу начать кодирование с этим дизайном.
Замечания: * Я прошу об этом, потому что, например,
qmgrA
был отключен / отключен по неизвестной причине, по крайней мереqmgrB
все еще активен
и будет получать сообщения наqueueName
даже еслиqmgrA
отключенКстати, я использую Websphere MQ v7 C ++.
Заранее спасибо! 🙂
Похоже, вопрос заключается в том, как сделать то, чего не делает IBM MQ. QMgrs не «подключаются» к очередям, они их размещают. Приложения не «подключаются» к очередям, кроме как в абстрактном смысле JMS. Они подключаются к QMgrs, а затем открывают очереди. Однако описанное требование поддержания высокой доступности MQ может быть выполнено с помощью кластеров MQ, аппаратных кластеров, многоканальных QMgrs, общих очередей (только в z / OS) или некоторой их комбинации.
Каждый из двух администраторов очередей в вашем примере содержит локальную копию queueName
, Вот несколько сценариев того, как сообщения распределяются в этой ситуации.
PUT
тин сообщения
queueName
приложением, связанным с qmgrA
по умолчанию приведет к приземлению сообщения в локальном экземпляре этой очереди. qmgrA
, qmgrB
, а также qmgrC
находятся в кластере, и qmgrC
не размещает локальный экземпляр очереди, сообщения, помещенные в это имя очереди, будут циклически перебираться между экземплярами на qmgrA
а также qmgrB
,GET
тин сообщения
queueName
на qmgrA
может быть извлечен из этой очереди только приложением, подключенным к qmgrA
, queueName
на qmgrB
может быть извлечен из этой очереди только приложением, подключенным к qmgrB
, qmgrC
не может получать сообщения из очередей, размещенных на qmgrA
или же qmgrB
, MQ HA
Требование высокой доступности очереди может быть достигнуто несколькими способами. Некоторые из них обеспечивают возможность восстановления услуг, предоставляемых MQ. Некоторые из них обеспечивают возможность восстановления сообщений, которые могут быть заблокированы в полете. В дополнение к чтению раздел проектирования топологии в руководствах, пожалуйста, смотрите MQ HA презентация от IBM Interconnect 2015.
Ваш вопрос действительно имеет большой смысл. Найдите MQ Clustering и MQ Multi-Instance в Центре знаний MQ. http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.con.doc/q017820_.htm