同步点附加管理器

同步点实现可以改为注册为 Host Integration Server 的 Sync Point Attach Manager,而不是为每个可能的事务名称发出单独的 RECEIVE_ALLOCATE 谓词。 它通过发出 RECEIVE_ALLOCATE 谓词来指定由所有 0x00 组成的 TP 名称来执行此操作。

注册同步点附加管理器后,服务器在 Host Integration Server 上的传入附加支持中将发生以下更改:

  • 当 VCB 的 syncpoint_rqd 字段设置为 AP_YES 的对话中的任何 TP 名称到达附加消息时,Host Integration Server 会将它与发出将自身注册为同步点附加管理器的特殊 RECEIVE_ALLOCATE 谓词的应用程序匹配。

  • 到达重新同步 TP (0x06F2) 的任何附加消息将自动路由到同步点附加管理器。

  • 如果没有为 Sync Point Attach Manager 或特定 TP 名称发出 RECEIVE_ALLOCATE ,则 Host Integration Server 将在配置的一段时间内对附加进行排队。 如果在此期间未发出 任何RECEIVE_ALLOCATE ,则将拒绝附加,返回代码为 TP_NOT_AVAILABLE_RETRY。

  • 如果 RECEIVE_ALLOCATE 与附加消息匹配,则谓词将返回到 TP,并将 VCB 的tp_name 字段设置为附加消息中包含的 TP 名称。

    使用此功能的应用程序必须遵守两个限制:

  • 在以这种方式启动的会话上发出的所有谓词必须由同一进程发出,因为 Host Integration Server 无法在进程之间传递 tp_id

  • 在运行 Host Integration Server 的任何服务器上,只有单个进程可以注册为 Sync Point Attach Manager。 如果第二个进程尝试注册,则其 RECEIVE_ALLOCATE 谓词将立即返回,并将主返回代码设置为AP_SYNCPOINT_MANAGER_ACTIVE。

    Sync Point Attach Manager 应用程序必须驻留在 Host Integration Server 服务器上。 它们可能不会分布在 Host Integration Server 客户端之间。 实施此限制是为了确保 Host Integration Server 上的每个 LU 仅存在 Sync Point Services (SPS) 和 Conversation-Protected 资源管理器 (C-PRM) 的单个实例, (如果同步点附加管理器在 Host Integration Server 域) 的多个服务器上可见,则情况可能并非如此。

    RECEIVE_ALLOCATE谓词控制块的结构不需要修改即可支持此函数。