关闭 PLU 连接 1 - Host Integration Server

应用程序应在逻辑断电条件下关闭 PLU 连接。 例如,如果其资源暂时不可用,或者当用户使用会话完成时。

当本地节点发出 Close(PLU) 请求时,应用程序可以从 “关闭 ”控件字段确定原因。 PLU连接可能有一个关联的状态消息(状态确认(Nack-2)),或者在SSCP连接上当LU被停用时为状态会话消息。

无论本地节点还是应用程序关闭连接,消息都是相同的。

Close 序列的发起方向其合作伙伴发送 Close(PLU) 请求,合作伙伴以 Close(PLU) 响应 回复。

Close(PLU) 请求是无条件的。

Close(PLU) 响应始终报告连接已成功关闭。

提供 Close(PLU) 响应 ,以便 Close 序列的发起方可以确定何时传递未完成的数据和状态消息。 为避免可能的竞争条件,应用程序应在发出Close(PLU)请求之后,在收到Close(PLU)响应之前,忽略所有来自PLU连接的消息,包括来自本地节点的任何Close(PLU)请求消息。

请注意,如果应用程序在 PLU 会话处于活动状态时发送 Close(SSCP) 请求 ,则本地节点将关闭 PLU 连接(就好像已发送 Close(PLU) 请求 )以及 SSCP 连接。

下图显示了应用程序启动的 Close 的消息序列。 本地节点向主机发送 TERM-SELF 请求,以引发 UNBIND。

如果主机在收到TERM-SELF时自动生成UNBIND,则应用程序可以将Close(PLU)视作终止PLU-SLU会话的等同操作。

应用程序发起的关闭消息序列

下图显示了从主机接收 UNBIND 请求后本地节点发起的 Close 的消息流。

收到 UNBIND 请求后,由本地节点发起的 Close 的消息流

当应用程序使用 FMI 的逻辑单元应用程序(LUA)变体时,发出 Close(PLU) 请求 会导致节点通过向 PLU 发送 UNBIND 请求来立即取消绑定 PLU 会话。 在收到 UNBIND 响应时,Close(PLU) 响应将返回到应用程序,如下图所示。

Close(PLU) 响应的消息流