调用在开放式 TCB 上运行的任务相关用户出口

如果使用指示其始终在开放式 TCB 上运行的选项来启用与任务相关的用户出口 (TRUE) ,那么 CICS® 将根据调用类型使用以下规则来确定应该在其上调用 TRUE 的 TCB。

应用程序调用 (API) -UERTAPPL
对于此调用,如果允许 TRUEs 始终在 L8上运行,那么将在 L8 TCB 上调用 TRUEs。 如果允许 TRUEs 在任何密钥 8 TCB 上运行,那么将在 L8, T8或 X8上调用 TRUEs。
CICS 同步点管理器调用-UERTSYNC
对于此调用,如果允许 TRUEs 始终在 L8上运行,那么将在 L8 TCB 上调用 TRUEs。 如果允许 TRUEs 在任何密钥 8 TCB 上运行,那么将在 L8, T8或 X8上调用 TRUEs。
CICS 任务管理器调用-UERTTASK
对于此调用, CICS 调用 TRUE 的 TCB 进一步由任务管理器调用类型确定:
UERTSOTR-任务启动
对于此调用,作为 Liberty 线程运行的任务将在 CICS 提供给 Liberty ThreadPool的 T8 TCB 上调用 TRUE。 在所有其他环境中,由于性能原因,不会使用开放式 TCB ,并且总是在 QR TCB 上调用 TRUE。
UERTEOTR-任务结束
对于此调用,如果允许 TRUEs 始终在 L8上运行,那么将在 L8 TCB 上调用 TRUEs。 如果允许 TRUEs 在任何密钥 8 TCB 上运行,那么将在 L8, T8或 X8上调用 TRUEs。
EDF 调用-UERTFEDF
对于此调用,如果允许 TRUEs 始终在 L8上运行,那么将在 L8 TCB 上调用 TRUEs。 如果允许 TRUEs 在任何密钥 8 TCB 上运行,那么将在 L8, T8或 X8上调用 TRUEs。
CICS SPI 调用-UERTSPI
对于此调用,出于性能原因, CICS 始终将 TRUE 作为线程安全 TRUE 调用,并因此在当前正在运行该任务的 TCB 上调用 TRUE。

SPI 函数 (用于满足指定了 CONNECTST 或 QUALIFIER 选项的 EXEC CICS INQUIRE EXITPROGRAM 命令) 很简单,不需要在特定 TCB 上进行调用。

CICS 终止调用-UERTCTER
对于此调用,不会使用开放式 TCB , CICS 始终在 QR TCB 上调用 TRUE。
注: 即使对于在开放式 TCB 上调用的调用类型,开放式 TCB 也可能发生异步异常终止,因此不可用于后续使用,结果如下:
  • 如果 CICS 无法将 API 调用的开放式 TCB 切换为 TRUE ,那么 CICS 会异常终止该事务。
  • 如果 CICS 无法切换到同步点或任务结束调用的开放式 TCB ,那么 CICS 将改为在 QR TCB 上调用 TRUE。

调用 TRUE 的 TCB 方式在由 UEPTIND 符号名称标识的三字节字段地址参数的第二个和第三个字节中提供。 请参阅 用户出口参数列表 以获取详细信息。