可调用 TP (CPI-C)

(TP) 的可调用事务程序是由另一个 TP 调用的 TP。 可调用的 TP 通过注册表或环境变量编写或配置,以将其名称提供给 SNA 服务,以通知它们可用于传入请求。 SNA 服务可调用 TP 可以在运行 Host Integration Server 或客户端的任何计算机上运行。

有两种类型的可调用 TP:

操作员启动的可调用 TP
运算符启动的可调用 TP 必须先由操作员启动,然后才能调用 TP。 当操作员启动的可调用 TP 启动时,它会通过发出 Accept_Conversation 调用来通知 SNA 服务其可用性。 Accept_Conversation调用会导致可调用的 TP 的名称与域中的所有 SNA 服务以及关联的 LU 的别名(如果已通过注册表或环境变量配置)通信。

自动启动的可调用 TP
需要时,SNA 服务可以启动自动启动的可调用 TP。 必须通过其本地系统上的注册表项或环境变量注册 TP,以便可以将其标识到 SNA 服务的 SnaBase 组件。 注册的信息将 TP 定义为自动启动,并且必须指定 TP 名称。 注册的信息还可以指定可调用的 TP 将使用的本地 LU 别名。

为自动启动的可调用 TP 设置注册表或环境变量的建议方法是使用示例 TP 配置程序、TPSETUP 或类似代码,这些代码写入你自己的安装程序。 有关可调用 TP 的注册表或环境变量的详细信息,请参阅 配置 Invokable TP

如果未向自动启动的TP 注册任何本地 LU 别名,则生成的 SNA 服务配置在响应调用请求时会更加灵活。 有关此类灵活配置的详细信息,请参阅 TP 名称不唯一;未指定的本地 LU 别名

SNA 服务启动自动启动的可调用 TP 后,TP 问题Accept_Conversation 就像操作员启动的 TP 一样。 Accept_Conversation必须提供为 TP 注册的 TP 名称。

必须通过注册表或环境变量将自动启动的 TP 配置为排队或未排队。 所有操作员启动的TP 都充当排队的TP。

排队的 TP
如果自动启动的 TP 配置为排队,或者如果 TP 由操作员启动,则传入的分配请求将排队,然后仅在不可调用的 TP 问题 Accept_Conversation时才发送。 对于自动启动的可调用 TP,如果 TP 的副本尚未运行,则当传入的分配请求指定该 TP 时,将启动一个 TP 副本。

注意

对于 Microsoft Windows 操作系统,在任何给定时间只能运行一个服务副本。 这意味着,在 Windows 下作为服务运行的所有自动启动的TP 都必须排队。 若要编写自动启动的 TP,使其在Windows 即服务下运行,并且也以非排队方式运行,请编写具有始终未完成Accept_Conversation的多线程程序。

未排队的 TP
如果自动启动的 TP 配置为未排队,则每次收到 TP 的 分配 时,都会启动一个新副本。 未排队的TP 应处理已分配的对话,然后退出,因为它们不会收到任何其他 分配 请求。