打开 SSCP 的资源位置

尝试跨多个本地节点查找逻辑单元 (LU) 时,应用程序无需知道哪个本地节点拥有 LU。 DL-BASE 负责使用所述机制查找合适的本地节点。 说明旨在帮助解释所涉及消息流的跟踪,但编写应用程序不需要该说明

Open(SSCP) 请求中的 open force 类型字段指定强制的或非强制的 Open。 如果针对 Open 的 LU 由于链接处于非活动状态而没有活动的系统服务控制点 (SSCP) 会话,则强制的 Open 将指示本地节点尝试激活链接和 SSCP 会话。 仅当 SSCP 会话已处于活动状态时,非强制的 Open 才会成功,否则返回错误代码,指示 LU 的连接状态。

当应用程序发出 Open(SSCP) 请求时,不会设置 open force 类型字段。 DL-BASE 会反过来向每个节点发出非强制的 Open,直到找到已具有活动 SSCP 会话的 LU。 如果这些 Open 均不成功,则 DL-BASE 会向返回最佳错误代码的节点(即最有可能激活会话的节点)发出强制的 Open。

下图中的示例消息流显示了两个本地节点的此过程。 DL-BASE 使用非强制的 Open 进行依次尝试。 来自节点 #2 的错误代码指示能够激活 SSCP 会话的可能性大于节点 #1,因此 DL-BASE 将强制的 Open 发送到节点 #2。 应用程序仅知道第一个请求及其响应。

显示两个本地节点的示例消息流的图像。
两个本地节点的示例消息流

若要使应用程序在发生灾难性故障后重新启动(例如,终止 3270 仿真程序),本地节点还会接受来自已发生故障且已重新启动的应用程序的 Open(SSCP) 请求,前提是已使用相同的源区域、合作伙伴、索引 (LPI) 字段。 在这种情况下,如果绑定了 LU,则会将 TERM-SELF 消息发送到主机。

应用程序通信时所依靠的 SNA 服务器 LU 根据 APPL 记录与配置文件中的 LU 或 LU 组记录之间的关系进行选择。 应用程序在 Open(SSCP) 请求上使用源名称字段指定其名称。 本地节点填充 LU 或 LU 组号,在 LU 组中选择未使用的 LU(如果关联到 LU 组),并在 Open(SSCP) 响应上通知应用程序此 LU 号。

Open(SSCP) 请求指定以下各项:

  • 源应用程序名称。

  • 资源标识符,应用程序可使用该标识符来关联已发送到应用程序的 Open(PLU) 请求。 (有关详细信息,请参阅打开 PLU 连接。)

  • 连接信息控制块,可用于指定响应头使用情况,并检查本地节点是否应对 LU 执行。 如果代码的字段设置为 0x01,则本地节点的数据流控制层将对从主机到达的数据执行接收检查。 对应的发送检查不受影响,并且始终会执行。 由于这些接收检查在 SNA 中是可选的,因此提供了连接信息控制块。 但是,预计大多数应用程序都需要执行所有这些检查(所有值设置为 0x01)。

  • 用于指示是否将应用程序视为高优先级或低优先级的指示器。 所有 SNA 服务器 3270 LU 都标记为高优先级(打印机不会发送大量入站数据)。 高优先级的影响是使数据在链接繁忙时更快地前进到主机。

  • 用于指定应用程序是否是 LUA 的指示器。 这可确定本地节点和应用程序是否使用函数管理接口 (FMI) 的 LUA 变体进行通信。 (有关详细信息,请参阅 FMI 概念。)

  • 用于指定非强制或强制的 Open 的指示器。 这可确定本地节点是否尝试激活 SSCP 会话(如果当前不处于活动状态)。

    Open(SSCP) 请求可能会由于多种原因之一失败,这可以通过已发送到应用程序的 Open(SSCP) 响应上的错误代码来确定,如以下列表所示:

  • 本地节点可能仍在初始化(从配置文件中检索信息)。 在这种情况下,应用程序可以立即重试。

  • 配置文件可能没有应用程序的条目,或者配置文件中的应用程序记录不能指向 LU 或 LU 组记录。

  • 对于非强制的 Open,SSCP 会话可能处于非活动状态。