MQMONITOR 资源定义

MQMONITOR 资源定义 IBM® MQ 消息使用者的属性,例如触发器监视器事务 CKTI。 使用 MQMONITOR 使为 MQ 队列提供服务的关联事务能够在与 IBM MQ 队列管理器建立连接时自动重新启动。

您可以使用 MQMONITOR 资源来处理 MQ 队列 (包括启动队列) 上的入局消息。 可以有多个 MQMONITOR 资源处理 MQ 队列上的入局消息。

已安装并启动的 MQMONITOR 资源监视在资源属性 QNAME 中指定或通过 MONDATA 属性提供给事务的 MQ 队列。

定义 MQMONITOR 资源以处理 MQ 启动队列上的入局消息时,请确保 TRANSACTION 属性指定 CKTI 或为空,并且 QNAME 属性指定要监视的 MQ 启动队列的名称。

当要用于 MQMONITOR 资源的是用户编写的 MQ 监视程序而不是缺省的 CKTI 时,用户编写的程序负责直接从应用程序队列获取消息并执行所需的逻辑。 对程序进行编码时,请确保遵循 开发和使用用户编写的 MQ 触发器监视器和 MQ 消息使用者中描述的准则。

为了使 CICS® 尝试自动启动与 MQMONITOR 相关联的事务,必须使用属性 AUTOSTART (YES) 和 STATUS (ENABLED) 安装 MQMONITOR。 当已建立 CICS 与 MQ 之间的连接时,如果与将 MQCONN 资源设置为 CONNECTED 的任务关联的用户标识具有足够的权限来启动关联的事务,那么 CICS 将启动已安装了 AUTOSTART (YES) 和 STATUS (ENABLED) 属性的 MQ 监视器。

当 CICS 从 IBM MQ 队列管理器断开连接时,将自动停止 MQMONITOR。

影响 MQMONITOR 的因素

Active z/OS® Workload Manager 运行状况服务

如果 z/OS 工作负载管理器运行状况服务在 CICS 区域中处于活动状态,那么 MQMONITOR 将对该区域的运行状态作出反应,并且可能受 z/OS 工作负载管理器运行状况服务打开状态的设置约束。 有关详细信息,请参阅 z/OS Workload Manager Health 服务对 MQMONITOR 资源的影响

在 MXT 条件下的 CICS

如果 CICS 迂到 MXT 条件,那么当此条件存在时,将对 MQMONITOR 每秒可以发出的 MQGET 调用数施加限制。 有关更多信息,请参阅 警报监视器 (CKAM)

注: 要确定是否已进行 MXT 选通,请参阅 解释事务统计信息

安装注意事项

有关使用 BAS 的信息,请参阅 使用 BAS MQMONITOR 资源定义

安全注意事项

事务的用户标识
如果安全性检查处于活动状态 (即, SEC 系统初始化参数设置为 YES) ,那么将从 MQMONITOR 资源的 MONUSERID 属性获取要与事务关联的用户标识。

如果禁用安全性检查 (即, SEC 设置为 NO) ,那么要与 MQ 监视器事务关联的用户标识是将 MQMONITOR 资源的状态设置为已启动的事务的用户标识。

将 MQ 监视器状态设置为 "已启动" 时由 CICS 执行的安全性检查
如果安全性检查处于活动状态,那么在将 MQ 监视器状态设置为 "已启动" 时, CICS 将对尝试将 MQ 监视器状态设置为 "已启动" 的事务的用户标识执行安全性检查,如下所示:
注: 在通过 CICSPlex ® SM API 接口 (例如 CICS Explorer®) 设置 MQ 监视器状态的情况下,要与 MQ 监视器事务关联的用户标识是区域用户标识或 PLTPIUSR 用户标识 (如果已指定)。
  • CICS 验证用户标识是否是 MONUSERID中定义的用户标识的代理。
  • CICS 验证用户标识是否有权启动与 MONUSERID中定义的用户标识相关联的事务。

DFHMQINI

安装在 INITQNAME 属性中指定值的 MQCONN 资源时, CICS 还会以保留名称 DFHMQINI (表示缺省启动队列) 动态创建并安装 MQMONITOR 资源。

DFHMQINI 具有以下属性:
QNAME
指定启动队列名称。
TRANSACTION
CKTI(缺省值)
MONUSERID
可按如下方式获取此属性:
  • 通过 PLTPIUSR 系统初始化参数(如果可用)
  • 否则,从 CICS 区域用户标识
USERID
值为 CICS 缺省用户标识。

当建立 MQ 连接时,会自动启动 DFHMQINI,将从 MONUSERID 获取与 CKTI 事务相关联的用户标识。

可以使用 EXEC CICS INQUIRE MQMONITORCEMT INQUIRE MQMONITOR 命令来查询动态创建的 MQMONITOR 资源的 QNAME 属性。 如果要更改此 QNAME 值,那么必须首先更改 MQCONN 资源的 INITQNAME 属性,然后重新安装 MQCONN 资源。 如果废弃了包含 INITQNAME 属性设置的 MQCONN 资源,那么还会废弃动态创建的 MQMONITOR 资源和任何用户定义的 MQMONITOR 资源。

语法

读取语法图跳过可视语法图MQMONITOR( 名称)GROUP( groupName)DESCRIPTION( 文本)STATUS(ENABLED)STATUS(DISABLED)

队列监视器属性

读取语法图跳过可视语法图AUTOSTART(YES)AUTOSTART(NO)MONDATA( 文本)MONUSERID( 用户标识符)QNAME( 名称)TRANSACTION( 名称)

应用程序属性

读取语法图跳过可视语法图USERID( 用户标识符)

属性

AUTOSTART { |}
指定是否自动启动 MQ 监视器。
在以下任一情况下,将自动启动 MQ 监视器:
MQ 监视器不会自动启动。
DESCRIPTION (文本)
在此字段中,可以提供要定义的资源的描述。 描述文本的长度最多可以为 58 个字符。 没有限制适用于您可以使用的字符。 不过,如果使用括号,请确保每个开头括号 ( 都有一个匹配的结尾括号 )。 如果使用 CREATE 命令,那么对于文本代码中的每个单撇号,请使用两个撇号。
组 (groupname)
每个资源定义都必须具有 GROUP 名称。 资源定义成为组的成员,并在安装组时安装在 CICS 系统中。
可接受的字符:

A-Z 0-9 $ @ #

当代码页为 IBM-037时,有效字符将按其呈现方式列出。 如果使用不同的 EBCDIC 代码页,请注意 变体角色 中记录的变体字符。

输入的任何小写字符都将转换为大写。

GROUP 名称的长度最多可以为 8 个字符。

MQMONITOR(名称)
指定此资源定义的 8 字符名称。
可接受的字符:

A-Z 0-9 $ @ #

当代码页为 IBM-037时,有效字符将按其呈现方式列出。 如果使用不同的 EBCDIC 代码页,请注意 变体角色 中记录的变体字符。

除非使用 CREATE 命令,否则您输入的任何小写字符都将转换为大写。

MONDATA(文本)
您可以指定要传递到监视 MQ 队列的事务的数据。 例如,可以使用此字段将参数传递到 MQ 网桥监视器事务 CKBR。 该属性最多可包含 200 个混合大小写字符。
注:
当监视任务显示和检索 MONDATA 数据时,将在该数据前面附加以下 18 个字节:
  • 字节 1:<(左尖括号)
  • 字节 2 - 9:MQMONITOR 资源名称
  • 字节 10 - 17:USERID
  • 字节 18:> (右 V)
字节 19 - 218 包含用户输入的 MONDATA。

因此,用户编写的程序在检索 MONDATA 时必须支持最大长度 218 字节,并使用检索到的 MONDATA 中的字节 2 - 9 所指定的 MQMONITOR 名称来设置 MQ 监视器的 MONSTATUS 属性,从而指示其当前状态。 另请注意,当安全性检查处于活动状态时, CICS 会对与尝试将 MQ 监视器状态设置为 "已启动" 的事务相关联的用户标识执行安全性检查。 有关更多信息,请参阅 MQMONITOR 资源中描述的安全注意事项。

在安装 MQMONITOR 时,用户定义的任何字符串 &applid.&APPLID. 将替换为本地区域的 APPLID。 这可以使此资源更加通用。

MONUSERID(用户标识)
指定要与用于监视 MQ 队列的事务相关联的用户标识。 仅当安全性检查处于活动状态 (即, SEC 系统初始化参数设置为 YES) 时,此属性才有效。 如果已禁用安全性检查 (即, SEC 设置为 NO) ,那么要与 MQ 监视器事务关联的用户标识是将 MQMONITOR 资源的状态设置为已启动的事务的用户标识。
注: 如果安全性检查处于活动状态,那么 CICS 会验证与尝试将 MQ 监视器状态设置为 "已启动" 的事务关联的用户标识是否是 MONUSERID 中定义的用户标识的代理,并且有权启动与 MONUSERID关联的事务。 在通过 CICSPlex SM API 接口 (例如 CICS Explorer) 设置 MQ 监视器状态的情况下,要与 MQ 监视器事务关联的用户标识是区域用户标识或 PLTPIUSR 用户标识 (如果已指定)。
QNAME(名称)
指定要监视的 MQ 队列的名称。

指定 QNAME 属性时,可以使用一个或多个符号参数 &applid.&APPLID., 值中的任意位置以标识 CICS 区域的 APPLID。 任何用户定义的字符串 &applid.&APPLID. 将在安装 MQMONITOR 时替换为本地区域的 APPLID。 这可以使此资源更加通用。

如果省略了 QNAME,那么缺省情况下,在安装资源时,会将该值设置为 &APPLID..INITIATION.QUEUE

STATUS { 已启用 | 已禁用 }
指定 MQMONITOR 资源在安装时的初始状态。
DISABLED
MQMONITOR 资源不可用。
已启用
MQMONITOR 资源可供使用。
TRANSACTION(名称)
指定监视 MQ 队列的任务所使用的 CICS 事务的 4 字符标识。

如果省略了 TRANSACTION ,那么缺省情况下该值设置为 CKTI。

USERID(标识)
指定缺省情况下用于启动与应用程序关联的事务的用户标识 (如果任何其他源都没有合适的用户标识)。

如果省略了 USERID ,那么将使用 CICS 缺省用户标识。