本地节点检查请求的出站链是否符合正确的 SNA 用法、会话的链接用法以及会话的当前状态。 如果符合以下条件之一,本地节点将接受来自主机的数据的有效出站链:
数据流量在全双工会话中处于活动状态。
会话处于可以接收数据的状态。
会话位于当前未发送任一半会话的括号之间,或者会话处于半双工争用会话的争用状态。 (有关详细信息,请参阅括号。)
会话正在等待主机启动恢复过程。 例如,本地节点已向出站链发送了否定响应。 (有关详细信息,请参阅恢复。)
本地节点针对每个出站请求向应用程序发送一条数据消息,但请注意在连接信息控制块中指定段传递选项的应用程序的效果。 (有关详细信息,请参阅段传递。)如果应用程序不指定段传递,则消息头中的开始链指示器 (BCI) 和结束链指示器 (ECI) 应用程序标志反映请求的请求头中的链接指示器。
出站链可以通过多种方式终止:
收到完整且没有错误的链。 链中的所有请求已作为数据消息传递给应用程序,并且已经过确认(如果适用)。
应用程序在接收链时检测到数据消息中的错误。 应用程序应向本地节点发送带有关联感知数据的 Status-Acknowledge(Nack-1),本地节点针对与错误中的数据消息对应的请求向主机发送否定响应和感知数据。 本地节点将不会清除链的其余部分,因此应用程序将看到结束链 (EC)。 另外,主机还可以使用 CANCEL 终止链,CANCEL 作为 Status-Control(CANCEL) 传递给应用程序,并设置 ACKRQD。
本地节点检测到请求中的错误,并向应用程序显示系统检测到的错误数据消息,以报告链被过早终止。 此消息附带系统检测到的错误指示器 (SDI) 和 ECI 应用程序标志、错误的感知代码和 ACKRQD 指示器。 它不包括用户数据。 当应用程序使用 Status-Acknowledge(Ack) 进行响应时,本地节点使用适当的感知代码生成对链的否定响应。 应用程序可以使用报告的感知代码为用户生成诊断信息。 (例如,3270 模拟器会生成 PROG 检查代码。)本地节点会清除链的其余部分,因此应用程序可能看不到 EC。 另外,主机还可以使用 CANCEL 终止链,CANCEL 作为 Status-Control(CANCEL) 传递给应用程序,并设置 ACKRQD。
在发送时,主机可以通过发送 CANCEL 请求来取消链。 本地节点向应用程序发送 Status-Control(CANCEL) 消息,应用程序必须确认该消息。
如果在接收链时出现错误,并且会话使用半双工触发器协议,则该应用程序必须呈 error-recovery-pending 状态。 (有关详细信息,请参阅恢复。)
对于使用半双工触发器协议的会话,如果链的最后一个数据消息中的应用程序标志具有 CDI(更改方向)标志集,则会出现以下情况:
如果接收链时未出现错误,则该应用程序具有方向。
如果应用程序拒绝了链中的任何消息,主机将保留方向。
以下四个图说明了本地节点和应用程序之间的出站链接协议,以及这些协议与基础 SNA 协议之间的关系。
在第一个图中,一个完整的出站链已被接收且未出错,并被应用程序接受。 请注意,在发送 Status-Acknowledge(Ack) 后,应用程序具有方向。
收到出站链且未出错并被应用程序接受在下图中,一个完整的出站链已被接收且未出错,但被应用程序拒绝。 请注意,即使链携带 CD,应用程序也无方向。
收到出站链且未出错但被应用程序拒绝在下图中,本地节点检测到没有 EC 的 RQD 的无效使用,并将请求转换为设置了 SDI 应用程序标志的数据消息,以及 ACKRQD 和相应的感知代码。 应用程序的 Status-Acknowledge(Ack) 将驱动对主机的否定响应。 此示例假定已在 Open (SSCP) 上的 CICB 中指定了接收检查 4007。
本地节点检测到无效使用并转换请求在下图中,主机取消出站链。
取消出站链的主机
另请参阅
打开 PLU 连接
PLU 会话
入站链接
段传递
Brackets
方向
速度和区块
确认和拒绝数据]
关闭和静止
恢复
应用程序启动的终止
LUSTAT]
响应时间监视器数据