Определите удаленный администратор очередей MQ, обращающийся к нашей локальной очереди - PullRequest
0 голосов
/ 28 декабря 2018

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

Чтобы установить ручной методчтобы сделать это (прежде чем я автоматизировал это), я выбрал QLOCAL случайным образом и, используя CA-Sysview, я использовал экран MQROBJ, чтобы увидеть, что один из наших регионов CICS помещает сообщения в очередь, и наш MQ CHIN запустил задачу, получая сообщения из очереди.

Но я не вижу, куда отправляются сообщения.Поскольку это QLOCAL, но это задание CHIN, которое снимает с него сообщения, то я предполагаю, что какой-то удаленный администратор очередей определил эту очередь как QREMOTE и выдает GET для этой очереди.

У нас есть доступ к обычному zКоманды / OS MQ и CA-Sysview

Можно ли установить удаленный администратор очередей, удаляющий сообщения из очереди?

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

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

DISPLAY CONN(*) TYPE(ALL) ALL WHERE(OBJNAME EQ local-q-name)

и найдите следующие поля;APPLTYPE, APPLTAG, OPENOPTS, CHANNEL, CONNAME

Вы можете определить, является ли приложение клюшкой или геттером, посмотрев на поле OPENOPTS в выходных данных.Если он говорит MQOO_OUTPUT, значит, это - паттер, а если он говорит MQOO_INPUT_*, то это геттер.

Если в приложении заполнено имя CHANNEL, то соединение, использующее этоочередь пришла по каналу.Вы должны пойти к машине, описанной CONNAME, и продолжить расследование оттуда.Вы должны быть в состоянии определить разницу между клиентским приложением и каналом отправителя / получателя, используя имя канала.

Если вы отслеживаете путь через канал отправителя / получателя, то на удаленном компьютере вы должнывзгляните на определения QREMOTE.Попробуйте выполнить команду, подобную следующей: -

DISPLAY QREMOTE(*) ALL WHERE(RNAME EQ local-q-name)
0 голосов
/ 28 декабря 2018

Удаленный администратор очередей не «удаляет сообщения из очереди».Это просто невозможно.Поскольку вы упомянули z / OS, то существуют шаблоны, в которых могут быть задействованы общие очереди, но это больше похоже на локальный qmgr, чем на удаленный.

Локальный CHIN забирает сообщения из очереди, чтобы ОТПРАВИТЬ их вудаленный администратор очередей, если он определен как очередь передачи (USAGE = XMITQ) и существует связанный канал.И в этот момент вы знаете, что такое удаленный qmgr.

Если очередь не является очередью передачи, то единственный способ задействовать канал - это если приложение CLIENT подключено к вашему администратору очередей.И затем, глядя на QSTATUS и CHSTATUS, следует предоставить информацию о том, что делает эту работу.

В более общем смысле, - это способов определить путь, по которому сообщение будет проходить через сеть MQ -исследуйте команду dspmqrte.Даже если он не является частью продукта MQ on z / OS, вы можете запустить его как клиентское приложение с другой платформы.

...