管理异步 API 的请求
异步 API 可能会导致 CICS® 系统中出现大量并发任务。 CICS 将在区域达到 MXT时自动开始工作负载管理,您可以使用 TRANCLASS 自行调节性能。 事务跟踪和统计信息还可用于监视运行异步工作负载的区域的性能。
调整性能
- 使用 TRANCLASS 资源
通过指定父事务的 TRANCLASS ,您可以控制将在任何给定时间在系统中运行的最大父任务数,并通过扩展来控制将由这些父任务创建的子任务数。
使用 TRANCLASS 的 MAXACTIVE 属性来确保父事务和子事务的组合数量小于系统的 MXT 。 子任务的 MAXACTIVE 值应该高于父任务的 MAXACTIVE 值,假定给定的父任务将创建多个子代。
重要信息: 如果您选择为子事务设置 TRANCLASS ,请不要对子事务和父事务使用相同的 TRANCLASS; 否则,最终可能会产生一个充满父任务的系统,而没有空间供子任务连接。- CICS 系统管理的自动调节
如果某个区域变得超负荷,那么 CICS 将自动开始调整工作流程,以防止创建过多的子任务。 发出 RUN TRANSID 命令的父任务将被暂挂并使用放入队列中的 ASPARENT 等待类型,并在区域中的工作负载级别下降时恢复。
当恢复父任务时,区域中的工作负载可能会波动,父任务可能会连续暂挂并恢复。 这是期望的行为,并指示自动系统管理正在正确保护 CICS 免受过多异步请求的影响。
如果您的异步工作负载定期导致您所在区域出现问题,请考虑使用上述 TRANCLASS 来调整工作负载。
监控性能
- 使用先前事务跟踪
先前事务数据特征 允许您跟踪区域中任务之间的关系。 例如,如果其中一个子任务挂起,那么可以使用此数据来查看哪个父任务正在等待该子任务的响应,并决定如何解决问题。
- 使用统计信息和监视数据
异步服务统计信息 和 监视字段数据 可用于帮助您监视和诊断异步工作负载。 您可以了解应用程序发出了多少 RUN TRANSID 和 FETCH 命令,等待子任务完成所花费的时间,以及有助于监视和提高异步性能的其他有用信息。
- 使用 CICS 策略
您还可以使用 CICS 策略 来管理异步工作负载。 通过使用 异步请求 规则类型,您可以选择在启动策略操作之前可以发出多少 RUN TRANSID 命令的阈值。 通过使用 CICS 策略,您可以更精细地控制系统中的父任务和子任务。
示例: 两个 异步请求 任务规则
图 1。 规则 async_over_3的定义
在此示例中,async_over_3规则指定如果任务发出三个以上 RUN TRANSID 命令,那么 CICS 将发出消息 DFHMP3001。DFHMP3001 13/03/2017 16:11:36 IYCWZCAB 任务 00238 (PAS2) 超过策略阈值。 BundleId=asyncPolicy, PolicyName=asynctask, RuleName=async_over_3, RuleType=asyncrequest, 类别=runtransid, Threshold=3Value=3 ,单位=), CurrentCount=4。
图 2。 规则 async_over_1k的定义
另一方面,如果任务发出超过千条 RUN TRANSID 命令,那么
async_over_1k规则将异常终止任务。 CICS 将发出消息 DFHMP3002 以及异常终止代码 AMPB。 可以像处理任何其他异常终止一样处理因策略规则而导致的异常终止。DFHMP3002 13/03/2017 16:11:36 IYCWZCAB 任务 00238 (PAS2) 超过策略阈值,并且异常终止,异常终止代码为 AMPB。 BundleId=asyncPolicy,, PolicyName=asynctask,, RuleName=async_over_1k, RuleType=asyncrequest,, Category=runtransid, Threshold=1000Value=1 ,单位=K), CurrentCount=1001。