应用程序事件

应用程序事件是一种业务事件类型,此类业务事件由应用程序活动导致且包含应用程序数据。

您可以指定当应用程序发出任何启用事件的 EXEC CICS API 命令时或者当应用程序启动时,发出事件。在捕获点中列出了启用事件的 EXEC CICS® 命令。 还对有限的 CICS 模块集启用了事件,因此您可以从多个来源处捕获事件,例如,来自 Atom 支持的文件和临时存储命令;EXEC CICS LINK 命令(由 CICS WebSphere® MQ 网桥程序发出);来自 CICS 样本和 CECI 事务的命令。

捕获规范通过使用过滤器(例如,事务标识、程序名或 EXEC CICS 命令选项值)来定义事件发出条件。通过过滤与命令关联的应用程序数据可进一步优化该捕获规范。 例如,您可以指定包含订单值的 COMMAREA 字段必须大于 10,000。捕获规范还定义要捕获的数据的位置。

事件在应用程序逻辑中的位置取决于指定事件的方式。 如果 CICS 应用程序包含同一 EXEC CICS API 命令的两个实例,并且过滤规范无法区分这两个命令,那么当同时发布这两个命令时将发出一个事件。 如果在两个应用程序中出现相同的 EXEC CICS API 命令,并且没有关于事务标识或程序名的过滤器,那么当这两个应用程序同时运行时将发出一个事件。

捕获点

可以在程序启动时 (PGMINIT) 以及在以下 EXEC CICS API 命令处捕获事件。下表中显示了可以指定的捕获点:

表 1. 应用程序事件捕获点
捕获点 主谓词 过滤器谓词 捕获数据
上下文 事件选项 事件选项 应用程序数据
CONVERSE

事务标识
当前程序用户标识响应代码EIBAID
EIBPOSN

FROM
INTO-SET

DELETE FILE FILE

事务标识
当前程序用户标识响应代码

FILE FILE RIDFLD
DELETEQ TD QUEUE

事务标识
当前程序用户标识响应代码

QUEUE QUEUE
DELETEQ TS QNAME

事务标识
当前程序用户标识响应代码

QNAME QNAME
INVOKE SERVICE SERVICE

事务标识
当前程序用户标识响应代码

SERVICEOPERATIONURICHANNELURIMAP

SERVICEOPERATIONURI CHANNEL
URIMAP

CHANNELSCOPE

LINK PROGRAM PROGRAM

事务标识
当前程序用户标识响应代码

PROGRAMCHANNEL

PROGRAMCHANNEL

COMMAREA
CHANNEL

PROGRAM INIT PROGRAM

事务标识
用户标识响应代码

PROGRAMCHANNEL

COMMAREA
CHANNEL

PUT CONTAINER CONTAINER

事务标识
当前程序用户标识响应代码

CONTAINERCHANNEL

CONTAINERCHANNEL

FROM
READ FILE

事务标识
当前程序用户标识响应代码

FILEUPDATE

FILE

RIDFLD
INTO-SET

READNEXT FILE

事务标识
当前程序用户标识响应代码

FILEUPDATE

FILE

RIDFLD
INTO-SET

READPREV FILE

事务标识
当前程序用户标识响应代码

FILEUPDATE

FILE

RIDFLD
INTO-SET

READQ TD QUEUE

事务标识
当前程序用户标识响应代码

QUEUE QUEUE INTO-SET
READQ TS QNAME

事务标识
当前程序用户标识响应代码

QNAME QNAME INTO-SET
RECEIVE

事务标识
当前程序用户标识响应代码EIBAID
EIBPOSN

NONE NONE INTO-SET
RECEIVE MAP MAP

事务标识
当前程序用户标识响应代码EIBAID
EIBPOSN

MAPMAPSET

MAPMAPSET

INTO-SET
RETRIEVE

事务标识
当前程序用户标识响应代码

NONE NONE INTO-SET
RETURN

事务标识
当前程序用户标识响应代码

TRANSIDCHANNEL

TRANSIDCHANNEL

COMMAREA
CHANNEL

REWRITE FILE

事务标识
当前程序用户标识响应代码

FILE FILE FROM
SEND

事务标识
当前程序用户标识响应代码

NONE NONE FROM
SEND MAP MAP

事务标识
当前程序用户标识响应代码

MAPMAPSETALARM

MAPMAPSET

FROM
SEND TEXT

事务标识
当前程序用户标识响应代码

ALARM NONE FROM
SIGNAL EVENT 1 EVENT

事务标识
当前程序用户标识响应代码

EVENTFROMCHANNEL

EVENTFROMCHANNEL

FROM
FROMCHANNEL

START TRANSID

事务标识
当前程序用户标识响应代码

TRANSIDCHANNEL

TRANSIDCHANNEL

FROM
CHANNEL

WEB READ

FORMFIELD
HTTPHEADER
QUERYPARM

事务标识
当前程序用户标识响应代码

NONE NONE

FORMFIELD
INTO-SET
VALUE

WEB READNEXT

FORMFIELD
HTTPHEADER
QUERYPARM

事务标识
当前程序用户标识响应代码

NONE NONE

FORMFIELD
VALUE

WRITE FILE FILE

事务标识
当前程序用户标识响应代码

FILE FILE RIDFLD FROM
WRITE OPERATOR

事务标识
当前程序用户标识响应代码

NONE NONE TEXT 2
WRITEQ TD QUEUE

事务标识
当前程序用户标识响应代码

QUEUE QUEUE FROM
WRITEQ TS QNAME

事务标识
当前程序用户标识响应代码

QNAME QNAME FROM
XCTL PROGRAM

事务标识
当前程序用户标识响应代码

PROGRAMCHANNEL

PROGRAMCHANNEL

COMMAREA
CHANNEL

所有捕获点均定义相同的上下文捕获项、PROGRAM、TRANSID 和 USERID。

注: 1 SIGNAL EVENT API 命令的唯一目的是为事件提供数据。仅当 CICS 系统中启用了匹配的捕获规范时,才会发出事件。
注: 2 当在“信息源”选项卡中指定应用程序数据时,长度为 0 表示一直捕获到数据区或容器末尾。当您要发出 EXEC CICS WRITE OPERATOR 的内容时,此值很有用。有关更多信息,请参阅“信息源”选项卡
有关可选择的捕获点的更多信息,请参阅 CICS 事件绑定编辑器中的“捕获点”选项卡“信息源”选项卡