开放式 TCB 和外部资源管理器
在 CICS 开放式事务环境 (OTE) 中,当将应用程序,任务相关的用户出口 (TRUEs) ,全局用户出口程序和用户可替换模块定义为线程安全的 CICS 时,它们可以在 OTE 中的开放式 TCB 上同时运行。
如果 TRUE 在开放式 TCB 上运行,那么将从 QR TCB 施加的约束中释放该 TRUE ,并且无需创建和管理其自己的子任务 TCB 集。 如果外部资源管理器发出的操作系统等待暂停开放式 TCB ,那么 CICS 将继续在 QR TCB 和其他开放式 TCB 上进行处理。 但是,在开放式 TCB 上运行的 TRUE 对整个 CICS 系统以及它正在使用的开放式 TCB 的未来用户都有义务。
在 L8 开放式 TCB 上运行的 TRUE 的义务
L8 TCB 专用于分配给它的 CICS 任务,但当 CICS 任务完成时, L8 TCB 将返回到分派器管理的 L8 方式 TCB 池,前提是它仍处于干净状态。 此上下文中的不干净 TCB 意味着使用 L8 方式 TCB 的任务在 TRUE 中迂到未处理的异常终止,而不是 TRUE 已违反 CICS 不会检测到的 线程安全限制。
L8 TCB 并非专用于供特定 TRUE 使用,而是由 CICS 任务调用且需要 L8 TCB 的所有 TRUE 使用。 L8 TCB 也由任务执行的线程安全应用程序代码使用。
在 T8 和 X8 开放式 TCB 上运行的 TRUE 的责任
对于 XPLINK 程序和在 OSGi JVM 中运行的 Java 程序, X8 和 T8 TCB 分别专用于该链接级别的 CICS 任务使用。 当控制返回到更高的链接级别时,将释放 TCB 并可供另一个 CICS 任务使用。
对于在 Liberty JVM 中运行的 Java 程序, T8 TCB 专用于由 CICS 任务以与 L8 TCB 相同的方式在该任务的生存期内使用。 如果 T8 TCB 保持清洁,那么后续任务可以使用这些 TCB。 而调用任务执行的应用程序代码在与 TRUE 相同的 TCB 上运行。