首页 > 解决方案 > 确定访问我们本地队列的远程 MQ 队列管理器

问题描述

我正在尝试编写一个脚本,当传递一个 MQ 队列名称时,该脚本将指示队列的“结束”,即谁将消息放在上面,谁将它们取下。

为了建立执行此操作的手动方法(在我自动化之前),我随机选择了一个 QLOCAL 并使用 CA-Sysview,我使用 MQROBJ 屏幕来查看我们的一个 CICS 区域将消息放在队列上,并且我们的 MQ CHIN 启动了任务从队列中获取消息。

但是我看不到消息的去向。由于这是一个 QLOCAL,但它是从它那里取出消息的 CHIN 作业,所以我假设一些远程队列管理器将此队列定义为 QREMOTE,并针对该队列发出 GET。

我们可以访问普通的 z/OS MQ 命令和 CA-Sysview

我可以建立远程队列管理器从队列中取出消息吗?

标签: ibm-mqmainframezos

解决方案


为了确定队列使用图的任一端,请在您的 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)

推荐阅读