可调用的 TP 是由另一个 TP 调用的 TP。 可通过注册表或环境变量编写或配置可调用的 TP,以将其名称提供给 Host Integration Server,以通知它们可用于传入请求。 可在任何运行 Windows 的 Host Integration Server 客户端或服务器上运行可调用的 TP。
有两种类型的可调用 TP:
操作员启动的可调用 TP
操作员启动的可调用 TP 必须先由操作员启动,然后才能调用 TP。 当操作员启动的可调用 TP 启动时,它会通过发出 RECEIVE_ALLOCATE 谓词通知 Host Integration Server 其可用性。 RECEIVE_ALLOCATE会导致可调用的 TP 的名称以及关联的 LU 的别名(如果已通过注册表或环境变量配置)传达给 SNA 域中运行 Host Integration Server 的所有服务器。
自动启动的可调用 TP
在需要时,Host Integration Server 可以启动自动启动的可调用 TP。 必须通过其本地系统上的注册表项或环境变量注册 TP,以便可以将其标识到 Host Integration Server 客户端软件的 SnaBase 组件。 已注册的信息将 TP 定义为自动启动,并且必须指定 TP 名称。 注册的信息还可以指定可调用的 TP 将使用的本地 LU 别名。
为自动启动的可调用 TP 设置注册表或环境变量的建议方法是使用示例 TP 配置程序、TPSETUP 或写入你自己的安装程序中的类似代码。 有关可调用 TP 的注册表或环境变量的详细信息,请参阅 配置可调用 TP。
如果没有向自动启动的 TP 注册本地 LU 别名,则生成的 Host Integration Server 配置在响应调用请求方面可以更加灵活。 有关此类灵活配置的详细信息,请参阅 TP 名称不唯一;未指定的本地 LU 别名。
Host Integration Server 启动自动启动的可调用 TP 后,TP 问题RECEIVE_ALLOCATE 与操作员启动的 TP 一样。 RECEIVE_ALLOCATE 必须提供为 TP 注册的 TP 名称。
必须通过注册表或环境变量将自动启动的 TP 配置为排队或未排队。 所有操作员启动的 TP 都充当排队的 TP。
排队的 TP
如果自动启动的 TP 配置为排队,或者如果 TP 是操作员启动的,则传入分配请求将排队,然后仅在RECEIVE_ALLOCATE可调用的 TP 问题时发送。 对于自动启动的可调用 TP,如果 TP 的副本尚未运行,则当传入分配请求指定该 TP 时,将启动一个 TP 副本。
注意
对于 Windows,在任何给定时间只能运行一个服务副本;这意味着,在 Windows 下作为服务运行的所有自动启动的 TP 都必须排队。 若要编写自动启动的 TP,使其在Windows 即服务下运行并同时以非排队方式运行,请编写一个具有始终未完成RECEIVE_ALLOCATE的多线程程序。
非排队的 TP
如果自动启动的 TP 配置为未排队,则每次收到 TP 的 ALLOCATE 或 MC_ALLOCATE 时,都会启动一个新副本。 非排队的 TP 应处理已分配的对话,然后退出,因为它们不会收到任何其他 ALLOCATE 或 MC_ALLOCATE 请求。