我正在尝试编写一个脚本,当传递 MQ 队列名称时,该脚本将指示队列的“结束”,即谁将消息放入以及谁将消息取出。
为了建立执行此操作的手动方法(在自动化之前),我随机选择了一个 QLOCAL 并使用 CA-Sysview,我使用 MQROBJ 屏幕来查看我们的 CICS 区域之一将消息放入队列和我们的 MQ CHIN 启动的任务从队列中获取消息。
但我看不到消息去了哪里。由于这是一个 QLOCAL,但它是从中获取消息的 CHIN 作业,因此我假设某个远程队列管理器将此队列定义为 QREMOTE,并针对该队列发出 GET。
我们可以访问普通的 z/OS MQ 命令和 CA-Sysview
我可以建立远程队列管理器来从队列中取出消息吗?
最佳答案
为了确定队列使用图的任一端,请在 QLOCAL 上尝试以下命令。
DISPLAY CONN(*) TYPE(ALL) ALL WHERE(OBJNAME EQ local-q-name)
并查找以下字段; APPLTYPE
、APPLTAG
、OPENOPTS
、CHANNEL
、CONNAME
您可以通过查看输出中的 OPENOPTS
字段来判断应用程序是 putter 还是 getter。如果显示MQOO_OUTPUT
,则它是推杆,如果显示MQOO_INPUT_*
,则它是 setter/getter 。
如果应用程序填写了 CHANNEL
名称,则使用该队列的连接来自某个 channel 。您必须转到 CONNAME
描述的机器并从那里进一步调查。您应该能够通过使用 channel 名称来区分客户端应用程序和发送方/接收方 channel 之间的区别。
如果您正在跟踪发送方/接收方 channel 上的路径,则必须在远程计算机上查看 QREMOTE 定义。尝试使用如下命令:-
DISPLAY QREMOTE(*) ALL WHERE(RNAME EQ local-q-name)
关于ibm-mq - 确定远程 MQ 队列管理器访问我们的本地队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53957355/