开放式任务控制块 (开放式 TCB)
开放式事务环境 (OTE) 是一个环境,线程安全应用程序代码可以在 CICS® 地址空间内自己的 TCB 上运行,而不受其他事务的干扰。 使用 OTE 的应用程序可以在称为开放式 TCB 的 TCB 类上运行,也可以在拟重入 TCB (QR TCB) 上运行。
与使用 QR TCB 相比,使用开放式 TCB 具有以下优点:
- 在开放式 TCB 上不存在其他 CICS 任务的分派。
- 可以同时运行多个开放式 TCB。
- 在开放式 TCB 下运行的应用程序可以发出非CICS API 请求,这些请求可能涉及要阻止的 TCB。 如果发生分块,那么此开放式 TCB 将停止,而不是整个 CICS。
- 当 CICS 任务结束时,开放式 TCB 可由另一个 CICS 任务复用。
TCB 方式
CICS 在不同的池中管理开放式 TCB ,每个池都包含不同的开放式 TCB 类型或方式。 每种方式都有一个 2 字符标识来指示其特定用途,并由 CICS 以不同方式处理:
- L8 方式 TCB 和 L9 方式 TCB
- 这些 TCB 用于运行线程安全程序; 即,在 PROGRAM 资源定义中定义为 CONCURRENCY (THREADSAFE) 或 CONCURRENCY (REQUIRED) 的程序。
- L8 方式 TCB 由 CONCURRENCY (THREADSAFE) 和 CONCURRENCY (REQUIRED) CICSAPI 应用程序使用,因为 CICS 服务不需要 TCB 键匹配。
- L8 方式 TCB 用于 CICSKEY OPENAPI 应用程序。
- L9 方式 TCB 用于 USERKEY OPENAPI 应用程序。
- SP 方式 TCB 和 S8 方式 TCB
- CICS 使用这些 TCB 通过 DFHDDAPX XPI 接口来管理到 LDAP 的 SSL 连接和请求。 S8 TCB 在单个相关可调度单元组中运行,该相关可调度单元组由 SP TCB 拥有,并且还包含 SSL 高速缓存。
- TP 方式 TCB 和 T8 方式 TCB
- TP 方式 TCB 由 JVM 服务器用于执行系统处理。 T8 TCB 用于在 JVMSERVER 资源中运行 Java™ 程序。
- X8 方式 TCB 和 X9 方式 TCB
- 这些 TCB 用于运行使用 XPLINK 选项编译的 C 和 C++ 程序。 X8 TCB 用于 CICS 键中的程序, X9 方式 TCB 用于用户键中的程序。 XPLINK 程序的每个实例都使用一个 X8 或 X9 TCB。 使用 XPLINK 选项编译的程序也必须在 PROGRAM 资源定义中定义为线程安全。 此指示以及装入模块中的 XPLINK "特征符" 是将任务放在 X8 或 X9 TCB 上所需的唯一内容。
允许 CICS 任务根据需要使用任意数量的 X8 和 X9 TCB ,并且这些 TCB 仅保留到程序完成为止。 每个 CICS 任务最多允许一个 L8 和一个 L9 TCB ,并且从分配到任务结束时,它会保留一个 L8 和一个 L9 TCB。 然后, TCB 变为可用,并且 CICS 可以将其分配给另一个任务或将其销毁。
TCB 存储需求
每个池中允许的最大 TCB 数由 MAXxxxxTCBS 参数指定。
指定任何 MAXxxxxTCBS 参数时,请考虑 TCB 存储需求。 所有 TCB 都使用实存储器和低于 16 MB 的虚拟存储器,因此 CICS 区域可支持的开放式 TCB 数受高于和低于 16 MB 的可用存储量的限制。
有关 MAXxxxxTCBS 参数的更多信息,请参阅 开放式 TCB 池。