Как ведет себя компонент, управляемый сообщениями темы, в кластерной среде Websphere 8.5.5

Я хотел бы запустить компонент, управляемый сообщениями, который прослушивает тему (Websphere MQ7). Я хотел бы развернуть свое приложение в кластере Websphere 8.5.5, содержащем два элемента кластера.

Если приходит сообщение для темы, я ожидаю, что только одна из двух моих MDB получит сообщение и обработает его.

IBM заявляет, что я должен установить идентичные идентификаторы ClientId и имена подписки, чтобы гарантировать, что только один экземпляр сможет обработать сообщение в теме: http://www-01.ibm.com/support/docview.wss?uid=swg21442559

Будет ли вторая MDB получать упомянутое исключение MQRC_SUBSCRIPTION_IN_USE, или кластер позаботится о том, чтобы одна и только одна MDB в кластере использовала сообщение темы?

Может быть, кто-нибудь может указать мне на документацию IBM, где это поведение определено.


person Dirk    schedule 11.09.2015    source источник


Ответы (1)


Чтобы разрешить нескольким одновременным экземплярам MDB доступ к одной и той же подписке в диспетчере очередей MQ, вы можете включить «Разрешить клонированные надежные подписки» в спецификации активации для MDB.

https://www-01.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/umj_pasm.html

Такой запуск означает, что запустятся оба экземпляра MDB (без ошибок IN_USE), и каждое сообщение для этой отдельной подписки будет обработано одним экземпляром MDB. Это можно использовать для балансировки сообщений между рабочими нагрузками на нескольких серверах WAS.

Это верно только для долгосрочных подписок. И только когда экземпляры MDB подключены к одному администратору очередей.

person David Ware    schedule 11.09.2015
comment
Спасибо за быстрый ответ. Чего я не могу найти в документах, так это того, будет ли один и ровно один экземпляр MDB в кластере потреблять сообщение при активации клонирования, или ВСЕ MDB для одной подписки получат сообщение? - person Dirk; 15.09.2015
comment
Да, только один экземпляр MDB будет получать каждое сообщение. Это, очевидно, в пределах обычных оговорок о доставке ровно один раз - постоянство, транзакции и т.д. - person David Ware; 17.09.2015