Отправка сообщений на узел MQOutput

Просто хочу подтвердить, что MQ правильно доставляет сообщения узлу MQOutput. Недавно столкнулся с ситуацией, когда я немного растерялся. Вот сценарий.

У меня есть локальная очередь на Qmgr, скажем (A), которая получает сообщения от приложений, и у меня есть локальный брокер, связанный с этим qmgr (A) с развернутым потоком сообщений, который потребляет сообщения из этой очереди и отбрасывает их на другой локальный (LB) очередь в диспетчере очередей (B).

Чтобы успешно доставить сообщения в qmgr(B), мне нужно

  1. Создайте определение удаленной очереди в Qmgr(A) с именем очереди передачи, совпадающим с именем удаленного администратора очередей, здесь (B) значение узла MQOutput установлено как, очередь->имя определения удаленной очереди в (A) и значение администратора очередей пустое
    или

  2. чтобы создать только очередь передачи, совпадающую с именем удаленного диспетчера очередей, здесь (B). Значение узла MQOutput установлено как очередь-> целевая локальная очередь (L.B), а значение диспетчера очередей — как (B).

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

Есть ли необходимость всегда создавать «n» определений удаленных очередей, когда необходимо отбрасывать сообщения в «n» количество локальных очередей?

Пожалуйста, помогите мне лучше понять это. Заранее благодарим каждого из вас.


person Ganesh G    schedule 18.05.2015    source источник


Ответы (1)


Нет необходимости создавать n удаленных определений очередей, MQ с радостью примет выходные данные, помеченные как предназначенные для «Имени очереди» в «Имени диспетчера очередей».

Вы говорите, что при использовании метода 2 ваши сообщения «сидят в локальной очереди». Есть несколько вещей, которые вы должны проверить, чтобы решить эту проблему.

  • Я предполагаю, что именованная очередь LB определена в QMgr B, а не в QMgr A?
  • Я предполагаю, что локальная очередь, в которой находятся сообщения, является очередью передачи?
  • Вы определили канал для чтения сообщений из очереди передачи, в которой они застряли?
  • Запустили ли вы канал, который должен перемещать сообщения из очереди передачи в QMgr B?
person Morag Hughson    schedule 19.05.2015
comment
Спасибо за ваши предложения по поводу этой Мораг, теперь она идеальна. Да, как вы упомянули, он стоял в очереди на передачу. Канал, который был создан для этой цели, использовал другую очередь XMIT, отличную от той, которую я ожидал. Переназначил его, чтобы использовать правильный, и теперь он работает. Каждый раз, когда я думал, что удаленная очередь здесь используется. В конце концов вы поняли, что удаленные очереди не обязательно нужны для доставки сообщений в этом сценарии. Спасибо еще раз. - person Ganesh G; 19.05.2015
comment
Также @Morag Hughson, я буду очень рад, если точно узнаю, как это работает. Мы не указываем явно локальную очередь на очередь передачи, как мы это делаем с определением удаленной очереди. Но в этом случае, как MQ работает, чтобы выбрать сообщения из локальной очереди, чтобы передать очередь, чтобы доставить ее к месту назначения? Еще раз спасибо заранее. - person Ganesh G; 19.05.2015
comment
Диспетчер очередей выполняет процесс, называемый разрешением имен очередей, чтобы определить, в какую очередь передачи следует поместить сообщение. Если вы использовали объект QREMOTE, он будет искать там XMITQ, если вы используете имя очереди и имя администратора очередей напрямую, он использует очередь передачи с тем же именем. Есть и множество других случаев. почитайте о разрешении имен очередей, ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/ - person Morag Hughson; 20.05.2015
comment
Огромное спасибо @Morag Hughson - person Ganesh G; 27.05.2015