CICS 事件处理: 性能和调整
CICS® 事件处理 (EP) 由三个主要组件组成: 捕获事件,分派 EP 适配器以及通过运行 EP 适配器来发出事件。 对于每个组成部分,影响性能的因素会有所不同。
捕获事件时要考虑的因素
对于与运行 EP 相关联的 CICS 性能,请考虑以下因素:
- 对于已启动 EP 但未安装任何事件绑定文件的情况,可以忽略处理器使用率。
- 在启动 EP 并安装事件绑定文件的情况下,处理器使用率可以忽略不计,但是当捕获点未在任何事件捕获规范中的任何 <locationFilter> (捕获点和应用程序命令谓词)元素中定义时。
- 对于主谓词匹配,相比其他 filterOperator 值,使用属性 filterOperator="EQ"(在过滤谓词中指定的“Equals”)可以提高性能。 指定 filterOperator="EQ" 时,会使用优化操作。注: CICS 事件绑定编辑器使用星号 (*) 来显示所选捕获点的主谓词。
- 如果您使用 <dataCapture> (映射到捕获规范信息源部分的已发布业务信息项 )来捕获与捕获点相关的特定数据部分,请尽量减少 <dataCapture>的数量。 否则,性能会受到负面影响,因为会针对每个数据捕获组件创建一个单独的容器。 例如,如果与 EXEC CICS WRITE命令需要被捕获,定义一个 <dataCapture> 元素来捕获字节 0 - 35 比为每个单独的数据区域定义四个 <dataCapture> 元素更有效。
- 如有可能,请勿包括不必要的过滤谓词。 例如,通常不需要过滤事务标识和当前程序名。
- 将排除了最不需要事件的过滤谓词放在排除其次不需要事件的过滤谓词之前。
- 如有可能,请勿在可能包含不可用数据的分区十进制或压缩十进制数据字段中使用过滤谓词。
EVENTBINDING GLOBAL STATISTICS 类别中的 CICS 统计信息显示事件过滤器操作总数。 有关更多信息,请参阅 EVENTBINDING 统计信息。
分派 EP 适配器时要考虑的因素
EP 在 L8 TCB 上运行多个分派器任务,为事件发出提供服务。 这些分派器任务计入 CICS 为 L8 和 L9 方式开放式 TCB 数设置的限制。 CICS 使用公式 (2 * MXT value)
+ 32自动设置此限制。 因此,EP 不会独占 L8 TCB,用于 EP 分派器的 L8 TCB 的最大数目仅限于开放式 TCB 限制的三分之一。 EVENTPROCESS STATISTICS 类别中的 CICS 统计信息显示峰值事件捕获队列和峰值分派器任务,以便您可以监视由 EP 使用 L8 TCB 的情况。 有关更多信息,请参阅 EVENTPROCESS 统计信息。
根据适配器的配置,适配器可以是连接或链接适配器。 连接每个事件的任务会增加处理器的使用率,使用此连接方式意味着事件分派器任务不会等待事件发出,而会继续处理事件队列。
在 CICS 事件绑定编辑器适配器部分中指定事务标识或用户标识时,适配器将作为单独的任务连接。 如果未指定事务标识或用户标识,那么会从分派器任务链接适配器。 但是,始终会连接 HTTP EP 适配器。
通过运行 EP 适配器发出事件时要考虑的因素
- TSQ
- TSQ EP 适配器在 CPU 使用率方面强制实行最低开销策略。
- WebSphere® MQ
- 每个事件都具有针对 WebSphere MQ EP 适配器的
MQPUT1调用。有保证的事件发射: 您需要有保证的事件发射的能力和可靠性,以根据事件构建业务关键型应用程序扩展。 但是,有保证的事件发出(使用同步发出方式)将事件发出的开销从异步事件处理任务转移到应用程序线程。 因此,有保证的事件发出可能会对应用程序响应时间造成负面影响,这类似于将针对事件的 MQPUT 添加到应用程序自身。 由于响应时间的影响,因此请仔细考虑哪些事件需要更高的可靠性级别,这种级别可通过同步发出方式来实现。 如果偶尔丢失事件(捕获事件,但尚未发出期间)不那么重要,那么异步发出方式是更好的选择;例如,对于经常丢失事件的邮件应用程序。 仅当需要确保您的业务能够最有效地利用有保证的事件发出,并对性能造成最低影响时,才应指定同步发出方式。 - HTTP
- 每个事件都会针对 HTTP EP 适配器执行
WEB OPEN、WEB CONVERSE和WEB CLOSE调用。 缺省情况下,发出事件后, CICS 将关闭客户机 HTTP 连接,并为下一个事件打开新连接。 CICS 可以在发出事件后保持客户机 HTTP 连接处于打开状态,以便可以将这些连接复用于后续事件发出,并且可以节省处理器开销以重新打开连接。 要保持打开连接,请在 HTTP EP 适配器针对连接使用的 URIMAP 资源中指定 SOCKETCLOSE 属性。 基于发出速率来为连接选择相应的到期时间。使用 HTTP 适配器发出的每个事件会连接 CEPH 任务。 CEPH 事务的 DTIMEOUT 值为 5 秒,因此,当在 5 秒内无法建立与事件服务器的连接时,HTTP EP 适配器任务将超时。 然后,CEPH 任务将事件发送至兼容 HTTP 1.1 的服务器。 CICS 为名为 DFHECEPH 的 CEPH 事务提供 PROFILE。 该概要文件的 RTIMOUT 值为 5 秒,因此,当事件服务器在 5 秒内未做出响应时,HTTP EP 适配器任务将超时。 如果希望对其进行更改,可以复制该概要文件和 CEPH 事务。- 如果与符合 HTTP 1.1 的服务器或网络响应时间相比,发出速率较高,那么这些 CEPH 任务可能会淹没 CICS 系统,从而导致达到 MXT 限制。 您必须复制 CEPH 事务,然后将事务分配给事务类以避免达到 MXT 限制。 事务类必须具有足够低的 MAXACTIVE 值以避免达到 MXT 限制,并将 PURGETHRESH 值设置为非零值。
- 在达到 PURGETHRESH 限制时会清除的任何 CEPH 任务不会发出它们的事件。 达到 PURGETHRESH 限制时清除的任何任务都会导致将以下消息写入 CSMT 瞬时数据目标:DFHAC2036 Transaction CEPH has failed with abend AKCC.
注: 使用复制的概要文件或事务时,必须在 事件绑定编辑器 中更改适配器配置,以使用此新事务运行 HTTP 适配器。 - 事务启动
- 事务启动 EP 适配器将启动新的 CICS 任务。 因此,由于启动因 CICS 事件而驱动的事务,处理器使用率整体会增加。 另外,每个数据捕获字段都可用于容器中已启动的事务。 大量这些 CICS 任务可能会使适配器上的处理器使用率显着增加。
EVENTPROCESS STATISTICS 类别中的 CICS 统计信息显示以下事件的数量:
- 分派给 WebSphere MQ EP 适配器的事件
- 分派到 HTTP EP 适配器的事件
- 分派到事务 EP 适配器的事件
- 分派到 TSQ EP 适配器的事件
- 分派到定制 EP 适配器的事件
有关更多信息,请参阅 EVENTPROCESS 统计信息。
用于事件处理的 CICS 区域存储器
事件处理在 CICS 区域中使用 64 位 (高于条形) 存储器。 因此,使用事件处理会影响您为适用于 CICS 区域的 z/OS® MEMLIMIT 参数选择的值。
如果使用临时存储器队列 (TSQ) 适配器,并选择主临时存储器,此数据也位于 64 位存储器内。
有关 CICS的 MEMLIMIT 值的信息以及有关检查当前适用于 CICS 区域的 MEMLIMIT 值的指示信息,请参阅 估算并检查 MEMLIMIT。 有关 z/OS中 MEMLIMIT 的更多信息,请参阅 Limiting the use of private memory objects in the z/OS MVS Programming: Extended Addressability Guide。