系统事件

系统事件是业务事件的一种类型,源于系统活动,并包含系统数据。 系统事件可以包括资源状态更改、超过阀值或者异常的系统状态或操作。 使用系统事件可帮助您了解系统资源状态或系统运行状况的更改。

注:

CICS® TS 5.4 引入了对 CICS 策略中的系统规则的支持。 策略系统规则为系统事件和取代系统事件提供等效或增强的功能。 有关更多信息,请参阅 策略系统规则

不推荐使用对系统事件的支持; 在任何将来的 CICS 发行版中都不会提供进一步的增强功能。 如果使用系统事件,那么可以在此发行版中继续执行此操作,以下信息提供有关受支持系统事件的详细信息。 但是,在 CICS的未来发行版中可能会撤销对系统事件的支持,因此请考虑尽早迁移以使用策略系统规则。

可以通过捕获针对特定 CICS 系统条件的事件来向您发出警报。 接收有关任何系统资源状态更改的通知可使您不必在更改发生后轮询更改;这还意味着您可快速地响应这些系统事件。

事件处理支持以下系统事件:
  • DB2CONN 连接状态
  • FILE 启用或禁用状态
  • FILE 打开或关闭状态
  • MESSAGE
  • TASK 阈值
  • TRANCLASS TASK 阀值
  • 未处理的事务异常终止

捕获点

下表显示系统事件支持的捕获点。
表 1. 系统事件捕获点
捕获点 主谓词 过滤器谓词上下文 过滤器谓词事件选项 捕获数据事件选项 描述
DB2® 连接状态
事务标识
用户标识
from_connectst
to_connectst
DB2ID
DB2GROUPID
from_connectst to_connectst DB2RELEASE

每当 DB2CONN 连接状态更改时都会捕获到事件。1

FILE ENABLE STATUS FILE
事务标识
用户标识
文件
FROM_ENABLESTATUS
TO_ENABLESTATUS
OPENSTATUS
文件
DSNAME
FROM_ENABLESTATUS
TO_ENABLESTATUS
OPENSTATUS

您可以在文件 ENABLESTATUS 更改时捕获到事件。1

FILE OPEN STATUS FILE
事务标识
用户标识
文件
FROM_OPENSTATUS
TO_OPENSTATUS
文件
DSNAME
FROM_OPENSTATUS
TO_OPENSTATUS
ENABLESTATUS

您可以在文件 OPENSTATUS 更改时捕获到事件。1

MESSAGE MESSAGE_ID
事务标识
用户标识
MESSAGE_ID
INSERT1 到 INSERT302
MESSAGE_ID
INSERT1 到 INSERT30
MESSAGE_TEXT

每当 CICS 发出 DFHxxnnnn 3 消息或 CICSPlex ® SM 发出 EYUxxnnnn 消息时,都可以捕获事件。

TASK THRESHOLD PERCENT_MAXTASKS
from_tasks
to_tasks
maxtasks
percent_maxtasks

您可以在超过某个任务阈值时捕获到事件。 从预定义列表中选择阈值。6

TRANCLASS TASK THRESHOLD TRANCLASS
tranclass
percent_maxactive
tranclass
from_active
to_active
maxactive
percent_maxactive

您可以在超过 TRANCLASS 任务阈值时捕获到事件。 从预定义列表中选择阈值。6

TRANSACTION ABEND(未处理) TRANSACTION 用户标识
事务
ABCODE
事务
ABCODE

您可以在事务遇到任何未处理的异常终止时捕获到事件。

注:
  1. 可以通过显式操作程序操作 EXEC CICS SET 命令进行更改,也可以作为 CICS 内部处理的结果进行隐式更改。
  2. 您最多可选择 10 个消息插入过滤器。 请确保使用可用的插入,因为 CICS 事件绑定编辑器不会阻止您在不可用的插入上定义过滤器,并且不会标记错误。 相反,结果会导致运行时异常跟踪,对谓词的求值为 false,且不会发出任何事件。 例如,消息 DFHFC0200 具有 7 个插入。 如果在 INSERT 8 到 30上定义过滤器,那么不会发出任何事件。 消息插入显示在各个消息主题中 (请参阅 CICS 消息)。
  3. 您无法对任何以下消息启用事件:
    • 在事件处理启动之前发出的任何 CICS 初始化消息。 事件处理正好在阶段 2 初始化 PLT 程序运行前启动。
    • 在事件处理停止后发出的任何 CICS 终止消息。 事件处理在所有关闭 PLT 程序已运行之后停止。
    • 发送给 CICS 用户的任何消息,例如, CICS 提供的事务 (例如 CEMT 和 CEDA) 发出的消息。
    • EC 或 EP 组件发出的任何消息,即所有 DFHECnnnnDFHEPnnnn 消息。
  4. 将发出 MESSAGE 系统事件,而不论消息是否受 XMEOUT 全局用户出口程序或系统初始化参数 MSGLVL=0 禁止。
  5. 不会针对源自运行事件处理适配器程序的任何任务的任何事务异常终止发出任何事务异常终止系统事件。
  6. 从预定义列表中选择任务阈值,如下所示:
    • 当使用 "Goes 大于" 运算符时, 60% , 70% , 80% , 90% 或 100%。
    • 50% , 60% , 70% , 80% 或 90% ,当使用 "Goes lowerThan" 运算符时。

有关可选择的捕获点的更多信息,请参阅 CICS Explorer 产品文档中的捕获点选项卡CICS Explorer 产品文档中的信息源选项卡

任务阈值

您可以使用任务阈值事件来监视系统和事务类定义 (TRANCLASS) 任务负载,方法是指定当活动任务计数超过阈值时将发出事件。

任务阈值表示为 MXT 系统初始化参数的百分比或 TRANCLASS 资源MAXACTIVE 值。 出于性能原因,它们已预定义。 您可以选择的可能的任务阈值为:
  • 使用 Goes 大于 运算符时的 60% , 70% , 80% , 90% 和 100%。
  • 使用 低于 运算符时的 50% , 60% , 70% , 80% 和 90%。
您可以根据以下内容进行过滤:
  • 用于指示系统与 MXT 值的接近程度的阈值。 可以定义多个事件,以指示随着阈值逐渐接近您为 MXT 系统初始化参数设置的限制而变化的运行状况。
  • TRANCLASS 资源 和阈值,用于指示 TRANCLASS 资源 接近其 MAXACTIVE 值的程度。 您可以定义多个事件以指示各种程度的运行状况,因为连接的任务数接近您为 TRANCLASS 资源设置的 MAXACTIVE 限制。

为了避免发出大量事件,请仅在活动任务数超过新阈值界限时才发出事件。 例如,在事务连接期间,当活动任务数超过阈值,并且先前的 高于 事件超过下一个最低阈值时,将发出事件。 在事务拆离期间,当活动任务数低于阈值时,并且先前 低于 事件为超过下一个最高阈值时,将发出事件。 图 1 显示了此类示例。

图 1。 事件发出机会
耗用时间内 MAXTASKS 值的示例折线图。 图形上的点指示 MAXTASKS 的值跨越阈值边界并创建事件发出机会的位置。

1 当活动任务数超过 50% 阈值时,不会发出任何事件。 仅当活动任务数超过 60% , 70% , 80% , 90% 或 100% 阈值之一时,才会在事务连接期间发出事件。 当活动任务数低于 50% 阈值时,不会发出任何事件,因为自上次 低于 50% 事件以来,活动任务数未超过 60% 阈值。

2 发出事件的原因是活动任务数首次超过 60% 阈值,因为前一个 超过 50% 事件。

3 由于活动任务数首次超过 70% 阈值 (自上一个 超过 60% 事件以来) ,因此发出了事件。

4 当活动任务数在 70% 阈值附近振荡时,不会发出任何事件,因为活动任务数未跨越阈值边界以超过 80% 阈值或低于 60% 阈值。

5 发出事件是因为自前一个 低于 70% 事件以来,活动任务数首次低于 60% 阈值。

6 当活动任务数逐渐超过 60% , 70% , 80% , 90% 和 100% 阈值时,将发出一系列事件。

注意事项:

当 TRANCLASS 的 MAXACTIVE 值设置为小于 10 时,不会对该 TRANCLASS 启用事件发出。

对于定义为不具有 TRANCLASS 的那些事务(即使用 TRANCLASS(DFHTCL00) 定义的那些事务),将不发出 TRANCLASS 阈值事件。

如果需要在系统或 TRANCLASS 超过 100% 阈值时发出事件,并且需要尽快发出该事件,请考虑 EP 适配器的分派特征。
  • 对于系统 100% 阈值,请确保 EP 适配器将链接到其中。 可能是连接的 EP 适配器任务将排队,直到清除 MAXTASK 条件为止。
  • 对于 TRANCLASS 100% 阈值,请确保导致事件的 TRANCLASS 未用于 EP 适配器。