选择线型和BIND选项,以获得最佳性能
要优化性能,请选择要用于一组事务的线程类型以及相应计划的 BIND 参数。 同时选择线程类型和 BIND 参数很重要,因为 BIND 参数确定了许多活动是与线程相关还是与事务相关。
选择线类型
- 受保护的条目线程
- 建议对以下对象使用受保护的条目线程:
- 任何类型的高容量事务
- 具有多个落实的面向终端的事务
- 具有许多落实的面向非终端的事务 (如果在 DB2CONN中指定了 NONTERMREL=YES)
- 关键事务的不受保护条目线程
- 对于以下情况,建议对关键事务使用不受保护的条目线程:
- 需要快速响应时间的关键事务,但卷太小,无法使用受保护的线程
- 受限并行交易
- 后台事务的不受保护条目线程
- 对于不需要快速响应时间的低容量事务,建议使用后台事务的不受保护的入口线程。 将强制所有事务使用池线程。
使用受保护线程 (通过在条目线程的 DB2ENTRY 定义上指定 PROTECTNUM=n) 是一个性能选项,可减少创建和终止线程所涉及的资源。 当事务结束时,不会终止受保护的线程,并且与同一 DB2ENTRY 关联的下一个事务将复用该线程。 通过使用受保护的线程,您可以消除为个别事务创建和终止线程所需的许多工作。 出于性能原因,建议您尽可能使用受保护的条目线程,尤其是在频繁使用事务或发出许多 SYNCPOINTS 的情况下。 主要例外情况是不经常使用事务,因为即使是受保护的线程也可能在此类事务之间终止。
从会计的角度来看,情况是不同的。 每个线程终止和每个新用户登录都会生成一个会计记录。 这意味着如果线程保持活动状态并且用户标识未更改,那么将仅生成一条记帐记录。 此记录包含使用同一线程的所有事务的汇总值,但无法将任何值分配给特定事务。 通过指定 ACCOUNTREC (UOW) 以确保按工作单元剪切记帐记录,或者通过指定 ACCOUNTREC (TASK) 以确保按 CICS 任务剪切记帐记录,可以克服此问题。 请参阅 CICS Db2 环境中的记帐和监视 ,以获取有关 CICS Db2 环境中的记帐的更多信息。
可以指定多个事务以使用相同的 DB2ENTRY。 理想情况下,他们都应该使用相同的计划。 每个低容量事务都可以有自己的 DB2ENTRY。 在这种情况下,不可能复用线程,您应该指定 PROTECTNUM=0。 替代方法是在同一 DB2ENTRY 中对大量低容量事务进行分组,并指定 PROTECTNUM=n。 这将提供更好的线程利用率和更少的开销。
当创建线程时以及当新用户复用线程时,将执行授权检查。 避免安全性检查中的开销是使用受保护线程的性能优势的一部分。 这意味着从性能角度来看,定义为将同一 DB2ENTRY 与 PROTECTNUM>0 配合使用的所有事务都应使用相同的授权标识。 至少应该避免为 AUTHTYPE 参数指定 TERM , OPID 和 USERID ,因为这些值通常在事务的实例之间有所不同。
选择绑定选项
您必须将为计划选择的 BIND 选项与与该计划关联的事务所使用的线程类型进行协调。 有关绑定过程的概述,请参阅概述:使 CICS 应用程序能够访问 Db2。
绑定选项“验证”可能会影响性能。 在 CICS中使用VALIDATE(BIND)。 更多信息,请参阅 “绑定选项和程序注意事项 ”。
协调 DB2CONN, DB2ENTRY和 BIND 选项很重要。 更多信息,请参阅协调您的 DB2CONN DB2ENTRY 和BIND选项。