策略阈值

您可以使用策略规则来定义一些不同类型的阈值。部署具有相同阈值的多个策略规则时,规则的触发顺序依次是:消息操作规则、事件操作规则,最后是异常终止操作规则。

受支持的规则类型详细信息

表 1. 受支持的规则类型详细信息
规则类型  1  规则项  2  运算符  3  单位  4   5 

数据库请求

SQL 命令

大于

""
请求数
K
千请求
""
0 - 4294967295
K
0 - 4294967

文件请求

删除命令
读命令
读取下一个命令
读取上一个命令
读更新命令
重写命令
启动浏览命令
写命令

大于

""
请求数
K
千请求
""
0 - 4294967295
K
0 - 4294967

几个到上千个请求的这些值的范围适用于所有文件请求策略规则项。

程序请求

LINK 命令

注: INVOKE APPLICATION 命令也包含在计数中,但不是独立的策略项。

大于

""
请求数
K
千请求
""
0 - 4294967295
K
0 - 4294967

启动请求

START 命令

大于

""
请求数
K
千请求
""
0 - 4294967295
K
0 - 4294967

存储器

24 位任务存储器
24 位共享存储器

31 位任务存储器
31 位共享存储器

64 位任务存储器
64 位共享存储器

大于

B
字节
K
千字节
M
兆字节
G
千兆字节

24 位规则项:

B
0 - 16777215
K
0 - 16383
M
0 - 15
G
0

31 位规则项:

B
0 - 2147483647
K
0 - 2097151
M
0 - 2047
G
0 - 1

64 位规则项:

B
0 - 4294967295
K
0 - 4294967295
M
0 - 4294967295
G
0 - 4294967295

存储器请求

24 位任务存储器请求
24 位共享存储器请求

31 位任务存储器请求
31 位共享存储器请求

64 位任务存储器请求
64 位共享存储器请求

大于

""
请求数
K
千请求
""
0 - 4294967295
K
0 - 4294967

几个到上千个请求的这些值的范围适用于所有存储器请求策略规则项。

同步点请求

SYNCPOINT 命令

大于

""
请求数
K
千请求
""
0 - 4294967295
K
0 - 4294967

TD 队列请求

READQ TD 命令
WRITEQ TD 命令

大于

""
请求数
K
千请求
""
0 - 4294967295
K
0 - 4294967

几个到上千个请求的这些值的范围适用于所有 TD 队列请求策略规则项。

时间

CPU 时间
耗用时间

大于

O
微秒
M
毫秒
S
O
0 - 4294967295
M
0 - 86400000
S
0 - 86400(值 86400 等于 24 小时)

TS 队列字节

WRITEQ TS 命令
WRITEQ TS auxiliary 命令
WRITEQ TS main 命令

注:
  • WRITEQ 策略项用于为写入所有组合 TSQ 的数据量设置阈值。其他策略项用于为特定类型的 TSQ 设置阈值。
  • WRITE 和 REWRITE 请求写入的数据计算在总量内,将 REWRITE 请求视为 WRITE 操作,此时计数将根据 REWRITE 的总大小递增,而不是原始 WRITE 和 REWRITE 之间的增量。
  • 仅当 WRITEQ 成功执行时会对数据进行计数。

大于

B
字节
K
千字节
M
兆字节
G
千兆字节
B
0 - 4294967295
K
0 - 4194303
M
0 - 4095
G
0 - 3

所有 TS 队列字节策略规则项都具有相同的值范围。

TS 队列请求

READQ TS 命令
WRITEQ TS 命令
WRITEQ TS auxiliary 命令
WRITEQ TS main 命令

注: READQWRITEQ 策略项用于为向辅助和主要 TSQ 组合发出的 READ 或 WRITE 请求总量设置阈值。其他 WRITEQ 策略项用于为向特定类型的 TSQ 发出的 WRITE 请求的数量设置阈值。

大于

""
请求数
K
千请求
""
0 - 4294967295
K
0 - 4294967

几个到上千个请求的这些值的范围适用于所有 TS 队列请求策略规则项。

注: 选择单位并在策略规则中指定阈值的值时,请注意详细程度将随着单位增大而减小。但是,如果发现无法以更小的单位指定足够大的值,那么可以使用更高(更大)的单位来指定适当值。 例如,如果正在创建存储类型策略规则,且想要为大于 4294967295 字节的 64 位共享存储器设置阈值,那么不能使用“B”(字节)作为单位,但是能够使用“K”(千字节)作为单位来设置阈值,并在“策略”向导的字段中输入相应的“千字节”值。
要点: 您可以使用 CICS® 监控数据来设置策略阈值,但是请注意,由 CICS 监控计数的请求数与由 CICS 策略计数的请求数可能并不相同。这是因为策略只对 EXEC CICS API 请求计数,而监控还包括任何内部请求。因此,任何未通过 EXEC CICS 层的请求均由 CICS 监控进行计数,但是不包括在策略计数中。以下是使用策略对 WRITEQ TD 请求计数的示例,如果某用户任务发出 EXEC CICS SPI 请求来更改 CICS 资源的状态,消息 DFHAP1900 写入到瞬时数据队列 CADS 中;该请求会计入 CICS 监控数据,但是不包括在策略计数中。

示例

此示例列示了存储器和文件请求策略的 XML。当任务分配的 24 位任务存储器大于 1024 字节时,或者当任务执行的文件读操作超过 50 个时,该策略将发出消息 DFHMP3001。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<policy:policy xmlns:policy="http://www.ibm.com/xmlns/prod/cics/managedplatform/policy" policySchemaRelease="0" policySchemaVersion="1">
   <description>Example platform policy to monitor task storage and file read counts</description>
   <userTag>exmp_1</userTag> thru <userTag>exmp_3</userTag>
   <rule type="storage" 1 > 
      <name>TooMuch24BitStorage</name> 
      <description>Issue DFHMP3001 msg when a task allocate more than 1024 bytes of 24 bit task storage</description>      
      <storageUsedCondition item="task24" 2  operator="GT" 3  value="1" 5  unit="K" 4 />      
      <action>
         <message/>  
      </action> 
   </rule>
   <rule type="filerequest" 1 > 
      <name>TooManyReads</name> 
      <description>Issue DFHMP3001 msg when a task does more than 50 reads</description>      
      <fileRequestCondition item="read" 2  operator="GT" 3  value="50" 5  unit="" 4 />
      <action>
         <message/>  
      </action> 
   </rule> 
</policy:policy>
此示例列示了异常终止任务的文件请求策略的 XML。如果任务执行的文件读操作超过 10000 个,该策略将使用缺省异常终止代码 AMPB 异常终止该任务,如果任务执行的文件写操作超过 5000 个,该策略将使用用户指定的异常终止代码 CFI1 异常终止该任务。将随异常终止操作发出消息 DFHMP3002。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<policy:policy xmlns:policy="http://www.ibm.com/xmlns/prod/cics/managedplatform/policy" policySchemaRelease="0" policySchemaVersion="1">
   <description>Policy to monitor the number of file reads</description>
   <userTag>fcpol_1</userTag> 
   <rule type="filerequest" 1 > 
      <name>File_Reads</name> 
      <description>Abend the task if the file read limit exceeded</description>      
      <fileRequestCondition item="read" 2  operator="GT" 3  value="10" 5  unit="K" 4 />      
      <action>
         <abend/>  
      </action> 
   </rule>
   <rule type="filerequest" 1 > 
      <name>File Write</name> 
      <description>Abend the task with specified abend code CFI1 if the file write limit exceeded</description>      
      <fileRequestCondition item="write" 2  operator="GT" 3  value="5" 5  unit="K" 4 />
      <action>
         <abend abendCode="CFI1"/>  
      </action> 
   </rule> 
</policy:policy>
此示例列示了发出事件的文件请求策略的 XML。如果任务执行的文件写操作超过 500 个,该策略将向名为 adapterB 的事件适配器发出事件,如果任务执行的文件读操作超过 100 个,该策略将向名为 adaSetA 的事件适配器发出事件。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<policy:policy xmlns:policy="http://www.ibm.com/xmlns/prod/cics/managedplatform/policy" policySchemaRelease="0" policySchemaVersion="1">
   <description>Policy to monitor the number of file reads</description>
   <userTag>fcpol_1</userTag> 
   <rule type="filerequest" 1 > 
      <name>File Write</name> 
      <description>The file write limitation policy</description>      
      <fileRequestCondition item="write" 2  operator="GT" 3  value="500" 5  unit="" 4 />      
      <action>
         <event>  
            <eventAdapterName>adapterB</eventAdapterName> 
         </event>  
      </action> 
   </rule>
   <rule type="filerequest" 1 > 
      <name>File_Reads</name> 
      <description>File read limitation policy</description>      
      <fileRequestCondition item="read" 2  operator="GT" 3  value="100" 5  unit="" 4 />
      <action>
         <event>  
            <eventAdapterSetName>adaSetA</eventAdapterSetName> 
         </event>  
      </action> 
   </rule> 
</policy:policy>
有关表 1中显示的规则类型详细信息如何映射到 XML 参数和值的更多信息,请参阅策略 XML 元素名称和属性值