更新开始

CICS 如何保证事件发出

您可以通过以同步发出方式和适当事务方式使用 EP 适配器来保证发出事件。凭借同步发出,事件格式化和发出处理在捕获事务的工作单元内同步完成。仅在发出事件的情况下,工作单元才成功完成。 从应用程序任务链接 EP 适配器;即,该事件没有排队来由 EP 分派器线程或单独的 EP 适配器任务异步处理。

系统捕获点不支持同步事件发出,因此,无法保证发出系统事件。

同步事件可以是事务事件或非事务事件,但是在每种情况下必须正确设置传输的可恢复性。

同步非事务事件:
EP 适配器必须以不可恢复方式将事件发出到其传输,以便在工作单元发生故障的情况下,不会回退事件。
同步事务事件:
EP 适配器必须以可恢复方式将事件发出到其传输,以便在工作单元回退的情况下,回退事务事件。

并非所有 EP 适配器都可以支持 TRANSMODE 的所有组合的同步发出。有关更多信息,请参阅事件处理适配器。

如果无法发出某事件,那么 EP 适配器将提供有关该事件以及发出失败原因的信息、递增相关的事件统计信息并使捕获事务的工作单元回退。

规划注意事项

理解同步事件发出的工作方式有助于您了解如何最好地利用该功能。在您使用同步事件发出时需要考虑的一些事项包括:安全性、性能、传输和对应用程序的影响。

事件捕获事务必须具有针对用于同步发出的事件发出传输(例如,用于 WebSphere® MQ EP 适配器的 WebSphere MQ 队列)的写权限;发出事件的 EP 分派器或适配器任务需要写权限才能进行异步发出。

同步事务事件发出是可恢复的。使用 CICS WebSphere MQ EP 适配器时,事件置于同步点下的 WebSphere MQ 事件队列中;因此,您可能需要复审 WebSphere MQ 日志数据集空间分配。使用 CICS TSQ EP 适配器时,该适配器会增加对可恢复 TS 队列的使用,所以您可能需要复审 CICS 日志流大小和属性。将同步事务事件与长期运行的任务结合使用而不采用同步点,可能会导致日志溢出。

使用同步发出时,定制 EP 适配器必须支持 DFHEP.ADAPTPARM 容器中的 EPAP_RECOVER 标志。有关更多信息,请参阅定制 EP 适配器。

保证事件发出将提供构建基于事件的业务关键型应用程序以及用可靠方式扩展现有应用程序的机会。尽管同步处理对于保证事件发出是必不可少的,但可能会影响应用程序的响应时间,因此您需要做出权衡。审慎地使用同步事件发出可最小化应用程序影响。请参阅事件处理性能,以了解有关保证事件发出时的性能注意事项的更多信息。

单个工作单元可能导致发出许多事件,其中一些事件是事务事件,而一些事件是非事务事件。如果捕获事务未能发出同步事件,那么将利用其捕获的所有事务事件来回退工作单元。仍然可以发出非事务事件。

EP 适配器、其资源(例如 WebSphere MQ 队列)和事件使用者必须配置了足够的容量来处理要发出的事件的预期峰值数量,以防止捕获事务失败。

为了帮助您确定在何处使用同步发出,下面提供了一些关于异步和同步发出的注意事项以供比较:

使用异步事件发出时,请考虑以下特性:
  • 从 CICS® 程序发出事件的顺序可能不同于其捕获顺序。
  • 发出事件的顺序在启用了事件的 CICS 程序的各次运行之间可能会有所不同。
  • 无法保证事件发出。如果在正在处理事件时 CICS 异常终止,那么事件可能丢失。在 CICS 系统在事件捕获后但在事件发出之前发生故障的情况(这种情况不太可能出现)下,可能根本不会发出事件,无论事件绑定中的 EP 适配器是否指定事件是事务事件。
  • 将格式化和发出事件的开销转嫁给事件处理线程或单独的事务。
  • 对捕获事务的影响最小。
  • 无需更改应用程序代码。
使用同步事件发出时,请考虑以下特性:
  • 按照捕获事件的顺序从 CICS 程序发出事件。
  • 捕获事务成功完成时,事件发出才得以保证。
  • 事件可视为业务关键数据的应用程序扩展。
  • 对 WebSphere MQ EP 适配器使用同步发出时,可以保证事件交付。
  • 将格式化和发出事件的开销增加到应用程序线程上。
  • 对捕获事务的影响较大;对于应用程序线程上发出的事件,事件发出失败导致应用程序回退。考虑捕获事务配置以及对总体系统资源使用情况的影响。
更新结束