可调用的 TP

可调用 TP 是可以由其他 TP 调用的 TP。 可通过注册表或环境变量编写或配置可调用的 TP,以将其名称作为通知提供给 Host Integration Server,以通知它们可用于传入请求。 可在任何 Host Integration Server 客户端或运行 Windows 的服务器上运行可调用的 TP。

有两种类型的可调用 TP:

运算符启动的可调用 TP
操作员启动的可调用 TP 必须先由操作员启动,然后才能调用 TP。 启动由操作员启动的可调用 TP 后,它通过发出 RECEIVE_ALLOCATE 命令,向 Host Integration Server 通知其可用性。 RECEIVE_ALLOCATE 会将可调用 TP 的名称及关联 LU 的别名(如果通过注册表或环境变量配置)传递给 SNA 域内所有运行 Host Integration Server 的服务器。

自动启动的可调用 TP
如果需要,主机集成服务器可以启动自动启动的可调用 TP。 TP 必须在其本地系统上通过注册表项或环境变量进行注册,以便可以被 Host Integration Server 客户端软件的 SnaBase 组件识别。 已注册的信息将 TP 定义为自动启动,并且必须指定 TP 名称。 注册的信息还可以指定本地 LU 别名,该别名将由可调用的交易处理程序 (TP) 使用。

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

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

主机集成服务器启动自动启动的调用型 TP 后,TP 发出 RECEIVE_ALLOCATE,和操作员启动的 TP 一样。 RECEIVE_ALLOCATE 必须提供已为 TP 注册的 TP 名称。

必须通过注册表或环境变量配置自动启动的 TP,才能排队或未排队。 所有由操作员启动的 TP 都作为排队的 TP 运行。

排队中的TP
如果自动启动的 TP 被配置为排队,或由操作员启动,则传入的分配请求会被排队,只有在可调用的 TP 发出RECEIVE_ALLOCATE时才会发送。 对于自动启动的可调用 TP,如果尚未运行其副本,当传入分配请求指定该 TP 时,将启动一个副本。

注释

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

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