策略规则类型

受支持的策略规则类型包括数据库请求、文件请求、程序请求、启动请求、存储器、存储器请求、同步点请求、时间、TD 队列请求、TS 队列字节和 TS 队列请求。

数据库请求

使用数据库请求策略规则类型可为用户任务执行的 DB2® SQL 请求的数量定义阈值,并在超过该阈值时执行自动操作。该计数包括由出口发出的 SQL 请求。例如,某个程序发出将由 CICS® VT 转换为 SQL 请求的 EXEC CICS FILE 请求,该程序将同时针对任何文件请求阈值和任何 SQL 计数阈值进行计数。

文件请求

使用文件请求策略规则类型可为用户任务执行的 EXEC CICS 文件访问请求的次数定义阈值,并在超过该阈值时执行自动操作。 该阈值适用于特定文件命令,例如,READ。 不会对所有文件访问请求进行累积计数。无论该请求是否成功,在应用程序发出文件控制请求时都将对文件请求进行计数,包括 XFCREQ 全局用户出口返回 UERCBYP 响应代码(忽略请求)时。请求将计入应用程序拥有区域 (AOR) 的任务之下,而无论文件在本地还是远程。请求不会计入文件拥有区域 (FOR) 中。

程序请求

使用程序请求策略规则类型可为用户任务执行的 EXEC CICS LINKEXEC CICS INVOKE APPLICATION 请求的数量定义阈值,并在超过该阈值时执行自动操作。无论该请求是否成功,此规则类型都应用于在本地或远程处理的请求,包括 XPCREQ 全局用户出口返回 UERCBYP 响应代码(忽略请求)时。在远程区域中启动以处理某个 DPL 请求的任何任务都在应用于发出该 DPL 的任务的规则作用域之外,因此远程任务可能执行的任何进一步请求都不会被本地任务计数。

注: EXEC CICS INVOKE APPLICATION 请求包含在 EXEC CICS LINK 请求的计数中;无法对它们进行单独计数。

启动请求

使用启动请求策略规则类型可为用户任务执行的 EXEC CICS START 请求的数量定义阈值,并在超过该阈值时执行自动操作。无论该请求是否成功,都将对所有 EXEC CICS START 请求进行计数,包括 XICREQ 全局用户出口返回 UERCBYP 响应代码(忽略请求)时,或 XICERES 出口返回 UERCPURG 响应代码(所需资源不可用)时。
注: 在远程区域中函数输送的 EXEC CICS START 请求上使用策略时,触发机制取决于区域间通信协议和设置。有关更多信息,请参阅《CICS TS V5.2 产品文档》中的“镜像事务和变换器程序”

存储器

使用存储器策略规则类型可为用户任务分配的存储器量定义阈值,并在超过该阈值时执行自动操作。该阈值适用于特定存储类,例如,31 位任务存储器。不会对所有存储器请求进行累积计数。

阈值计数包括用户任务执行的所有成功的 GETMAIN 请求:显式 EXEC CICS GETMAIN 请求以及为响应其他 EXEC CICS 命令(例如,EXEC CICS READ FILE SET)而发生的隐式 GETMAIN 请求。 有关任务的存储请求(task24、task31 和 task64),在任务发出后续显式或隐式的 FREEMAIN 请求时,计数将减少。 但是,在任务释放共享存储容量时,共享存储器(shared24、shared31 和 shared64)的计数不会减少。

要点: 如果带有 NOSUSPEND 选项的 EXEC CICS GETMAIN 命令满足指定某个事件操作的规则,那么在捕获事件数据期间任务可能暂挂。

存储器请求

使用存储器请求策略规则类型可为用户任务执行的 GETMAIN 请求的数量定义阈值,并在超过该阈值时执行自动操作。 这与存储器策略规则类型不同,后者用于根据分配的存储器量定义阈值。存储器请求阈值计数包括用户任务执行的所有 GETMAIN 请求:显式 EXEC CICS GETMAIN 请求以及为响应其他 EXEC CICS 命令(例如,EXEC CICS READ FILE SET)而发生的隐式 GETMAIN 请求。请求失败时,存储器请求计数器值将增加。

要点: 如果带有 NOSUSPEND 选项的 EXEC CICS GETMAIN 命令满足指定某个事件操作的规则,那么在捕获事件数据期间任务可能暂挂。

同步点请求

使用同步点请求策略规则类型可为用户任务执行的 EXEC CICS SYNCPOINT 请求的数量定义阈值,并在超过该阈值时执行自动操作。EXEC CICS SYNCPOINTSYNCPOINT ROLLBACK 请求都将计数,除了成功的请求外,不成功的请求也包括在内。

时间

使用时间策略规则类型可为用户任务使用的处理器时间量(CPU 时间策略项),或某任务耗用的时间量(耗用时间策略项)定义阈值,并在超过该阈值时执行自动操作。时间策略规则类型与其他策略规则类型的不同之处在于,该阈值基于时间,而不是 API 请求计数或分配的存储器量。

注: 对于 CPU 时间策略项:由于记录处理器更改的方式,不可能持续对处理器时间计数,因此偶尔可能会在超过阈值一定时间之后,此功能才检测到该情况,并且如果您要在策略阈值操作执行之后比较监视数据,可能会看到一些差异。CPU 时间策略项将总处理器时间与策略阈值进行比较。但是,直到某个任务放弃对处理器的控制,处理器时间值才会增加,因此任务在放弃对处理器的控制并允许执行检查之前可能已大幅超过阈值。

对于 CPU 时间策略项,只有在任务得到重新分派并接着发出 EXEC CICS 调用或调用 TRUE(例如,EXEC SQL 调用)之后,该任务才会检查是否超过了 CPU 时间阈值。如果任务出于某些原因始终不放弃控制,在发生任何时间策略处理之前,当超出 RUNAWAY 时间间隔时正常 RUNAWAY 处理会异常终止该任务。对于耗用时间策略项,在每次任务发出 EXEC CICS 调用或调用 TRUE 时均会检查是否超出了耗用时间阈值。如果超过该阈值并且规则操作异常终止,那么将在命令完成后发生异常终止。

TD 队列请求

使用 TD 队列请求策略规则类型可为用户任务执行的瞬时数据队列 (TDQ) 访问请求的数量定义阈值,并在超过该阈值时执行自动操作。EXEC CICS READQ TDEXEC CICS WRITEQ TD 请求都将进行计数,不论是否成功,每个请求都将计数,包括 XTDREQ 全局用户出口返回 UERCBYP 响应代码(忽略请求)时。

注: 大量产品写入 CICS TDQ,这可能导致请求数量超出期望值。例如,语言环境大量使用 EXEC CICS WRITEQ TD 来编写诊断信息,并通过 COBOL display 和 C printf() 语句捕获输出。IP CICS Sockets 是另一款使用 EXEC CICS WRITEQ 请求的产品。

TS 队列字节

使用 TS 队列字节策略规则类型可为由用户任务写入单个临时存储器队列 (TSQ) 类型(辅助或主要)的数据总量定义阈值,或写入辅助和主要 TSQ 混合类型的数据总量定义阈值,并在超过该阈值时执行自动操作。只对成功请求的数据进行计数。由 EXEC CICS WRITEQ TSEXEC CICS WRITEQ TS REWRITE 两个请求写入的数据都将计入总和。对于 EXEC CICS WRITEQ TS REWRITE 请求,计数将根据 REWRITE 的总大小递增,并不是原始 WRITE 和 REWRITE 之间的增量。此行为与 MN 域处理 TSQ WRITE 和 REWRITE 请求的方式完全一致。

TS 队列请求

使用 TS 队列请求策略规则类型可为用户任务向辅助或主要临时存储器队列 (TSQ) 或向所有辅助和主要 TSQ 混合类型发出的 EXEC CICS READQ TSEXEC CICS WRITEQ TS 请求的数量定义阈值,如果超过该阈值时执行自动操作。读或写本地共享临时存储器队列的请求不会计数。无论请求是否成功,都将对辅助和主要 TSQ 的所有 TSQ 访问请求进行计数,包括 XTSEREQ 全局用户出口返回 UERCBYP 响应代码(忽略请求)时。EXEC CICS WRITEQ TS REWRITE 请求计数为 WRITEQ。

注: 以下几点同时适用于 TS 队列字节和 TS 队列请求策略规则类型:
  • 对于远程 TSQ 请求,只会更新聚合 READQ TSWRITEQ TS 计数,但是这将包括共享 TSQ 请求。由于 AOR 中并不知道远程请求的 TSQ 类型,因此不会更新指定队列类型的计数。在远程系统 (AOR) 中只会对由分布式程序链接 (DPL) 调用的程序或由事务路由启动的任务发出的 TSQ 请求进行计数。
  • 可能会对作为 CICS 用户任务触发的某些事物间接结果的 CICS 系统代码发出的 TSQ 请求进行计数。 例如,如果用户任务触发 CICS 事件,那么临时存储器事件适配器 DFHECEAT 会发出 TSQ 请求。 如果事件被定义为 SYNChronous,那么会在捕获(用户)任务下发出这些请求,并由策略代码进行计数。如果事件为异步形式,那么在 CICS 系统任务(和其初始程序启动 DFH 的一个任务)发出 TSQ 请求,因此策略不应用于该任务,且不会对其计数。
  • 由 CICS 发出的不通过 CICS EXEC 接口程序 (DFHEIP) 的 TSQ 请求会由监控进行计数,而不会由策略代码进行计数。
有关与策略规则类型关联的阈值的更多信息,请参阅策略阈值