线程 TCB(任务控制块)

在 CICS® DB2® 环境中, DB2 中的每个线程都在线程任务控制块 (TCB) 下运行。 本部分提供了有关线程 TCB 的更多技术信息,以帮助确定问题。

请参阅 概述: 线程工作方式 以获取线程 TCB 的概述。

线程 TCB 是打开的 L8 方式 TCB。 开放式 TCB 是主 CICS TCB (QR TCB) 的 "子代"。 CICS DB2 任务相关的用户出口本身在开放式 TCB 上运行,并使用它来运行线程。 任务相关的用户出口使用 CICS DB2 连接模块 DFHD2D2 在需要获取线程时调用 DB2 。 在另一个 TCB 上运行的另一个模块 DFHD2CO处理整体 CICS DB2 连接的各个方面,包括标识 DB2 以及将 CICS 与 DB2断开连接。

使用 DB2CONN的 TCBLIMIT 参数来控制任何时候可以在 DB2 中运行线程的最大打开 TCB 数。 当线程终止时,运行线程的开放式 TCB 不会终止。 在下列情况下,可以终止开放式 TCB:
  • 强制从 CICS 清除 CICS 事务,并且该线程在 DB2中仍处于活动状态。 在这种情况下,将终止 TCB 作为从 DB2中清空请求的方法。 DB2 中的当前 UOW 已回退。
  • CICS 对于 UOW 的结果是不确定的,因为它已失去与其协调程序的联系。 终止 TCB 会导致 DB2 释放线程,但将 UOW 保持为不确定状态并保持其锁定。 当 CICS 重新建立与其协调程序的联系时,将通过稍后的再同步来完成 UOW。
  • CICS 分派器 (如果 CICS DB2 连接设施未使用开放式 TCB ,那么会返回这些 TCB) 将在 30 分钟后清除未使用的开放式 TCB。