SLI_CLOSE
SLI_CLOSE谓词结束使用 SLI_OPEN 打开的会话。 发布 LU-LU 和 LU-SSCP 资源。
以下结构描述了SLI_CLOSE使用的谓词控制块 (VCB) LUA_COMMON成员。
语法
struct LUA_COMMON {
unsigned short lua_verb;
unsigned short lua_verb_length;
unsigned short lua_prim_rc;
unsigned long lua_sec_rc;
unsigned short lua_opcode;
unsigned long lua_correlator;
unsigned char lua_luname[8];
unsigned short lua_extension_list_offset;
unsigned short lua_cobol_offset;
unsigned long lua_sid;
unsigned short lua_max_length;
unsigned short lua_data_length;
char FAR * lua_data_ptr;
unsigned long lua_post_handle;
struct LUA_TH lua_th;
struct LUA_RH lua_rh;
struct LUA_FLAG1 lua_flag1;
unsigned char lua_message_type;
struct LUA_FLAG2 lua_flag2;
unsigned char lua_resv56[7];
unsigned char lua_encr_decr_option;
};
成员
lua_verb
提供的参数。 包含谓词代码,LUA_VERB_SLI会话级别接口 (SLI) 谓词。
lua_verb_length
提供的参数。 指定逻辑单元应用程序的长度(以字节为单位) (LUA) VCB。 它必须包含要发出的谓词记录的长度。
lua_prim_rc
由 LUA 在谓词完成时设置的主要返回代码。 有效的返回代码因发出的 LUA 谓词而异。
lua_sec_rc
完成谓词时由 LUA 设置的辅助返回代码。 有效的返回代码因发出的 LUA 谓词而异。
lua_opcode
提供的参数。 包含要发出谓词的 LUA 命令代码 (谓词操作代码) ,LUA_OPCODE_SLI_CLOSE。
lua_correlator
提供的参数。 包含用户提供的值,该值将谓词与其他用户提供的信息链接在一起。 LUA 不使用或更改此信息。 此参数是可选的。
lua_luname
提供的参数。 指定 Windows LUA 会话使用的本地 LU 的 ASCII 名称。
仅当lua_sid为零时,SLI_CLOSE才需要此参数。
此参数长度为 8 个字节,如果名称短于 8 个字符,则用空格 (0x20) 在右侧填充。
lua_extension_list_offset
不由SLI_CLOSE使用,应设置为零。
lua_cobol_offset
Microsoft® Host Integration Server 中的 LUA 不使用,应为零。
lua_sid
提供的参数。 指定会话标识符,由 SLI_OPEN 和 RUI_INIT 返回。 其他谓词使用此参数来标识用于命令的会话。 如果其他谓词使用 lua_luname 参数来标识会话,请将 lua_sid 参数设置为零。
lua_max_length
不由SLI_CLOSE使用,应设置为零。
lua_data_length
不由SLI_CLOSE使用,应设置为零。
lua_data_ptr
不由SLI_CLOSE使用,应设置为零。
lua_post_handle
提供的参数。 如果异步通知要由事件完成,则使用 Microsoft Windows Server 下。 此变量包含要发出信号的事件的句柄或窗口句柄。
lua_th
不由SLI_CLOSE使用,应设置为零。
lua_rh
不由SLI_CLOSE使用,应设置为零。
lua_flag1
提供的参数。 包含包含应用程序提供的消息标志的数据结构。 其子参数如下所示:
lua_flag1.bid_enable
出价启用指示器,一位。
lua_flag1.close_abend
关闭即时指示器,一位。 SLI_CLOSE提供的参数,用于指定会话是立即关闭 (ON) 还是正常关闭 (OFF) 。 对于 除 SLI_CLOSE 以外的谓词,此标志必须关闭。
lua_flag1.nowait
无需等待数据标志,一位。
lua_flag1.sscp_exp
系统服务控制点 (SSCP) 加速流,一位。
lua_flag1.sscp_norm
SSCP 正常流,一位。
lua_flag1.lu_exp
LU 加速流,一位。
lua_flag1.lu_norm
LU 正常流,一位。
lua_message_type
不由SLI_CLOSE使用,应设置为零。
lua_flag2
返回的参数。 包含 LUA 返回的消息的标志。
lua_flag2.async
指示 LUA 接口谓词在设置为 1 时异步完成。
lua_resv56
保留,应设置为零。
lua_encr_decr_option
不由SLI_CLOSE使用,应设置为零。
返回代码
LUA_OK
主要返回代码;谓词已成功执行。
LUA_SEC_OK
辅助返回代码;不存在LUA_OK的其他信息。
LUA_PARAMETER_CHECK
主要返回代码;由于参数错误,谓词未执行。
LUA_INVALID_LUNAME
辅助返回代码;指定的 lua_luname 无效。
LUA_BAD_SESSION_ID
辅助返回代码;在 VCB 中为 lua_sid 指定了无效值。
LUA_RESERVED_FIELD_NOT_ZERO
辅助返回代码;刚发出的谓词的保留参数未设置为零。
LUA_INVALID_POST_HANDLE
辅助返回代码;对于使用事件作为异步过帐方法的 Microsoft Windows 操作系统,Windows LUA VCB 不包含有效的事件句柄。
LUA_VERB_LENGTH_INVALID
辅助返回代码;LUA 谓词发出了 LUA 意外 lua_verb_length 值。
LUA_STATE_CHECK
主要返回代码;谓词未执行,因为它是在无效状态下发出的。
LUA_NO_SLI_SESSION
辅助返回代码;发出命令时,由于 SLI_CLOSE 或会话失败,会话未打开或关闭。
LUA_CLOSE_PENDING
辅助返回代码;发生了以下情况之一:
发出另一个CLOSE_ABEND时,CLOSE_ABEND仍在等待。 如果CLOSE_NORMAL挂起,可以发出CLOSE_ABEND。
发出CLOSE_NORMAL时,CLOSE_ABEND或CLOSE_NORMAL仍处于挂起状态。
LUA_SESSION_FAILURE
主返回代码;辅助返回代码中指定的错误条件导致会话失败。LUA_NOT_ACTIVE
辅助返回代码;发出 LUA 谓词时,LUA 在 Microsoft Host Integration Server 中未处于活动状态。
LUA_UNEXPECTED_SNA_SEQUENCE
辅助返回代码;在处理 SLI_OPEN 时,从主机收到意外数据或命令。
LUA_NEGATIVE_RSP_CHASE
辅助返回代码;在处理 SLI_CLOSE 时,LUA 接口从主机收到对 SNA CHASE 命令的负面响应。 SLI_CLOSE 继续处理以停止会话。
LUA_NEGATIVE_RSP_SHUTC
辅助返回代码;在仍在处理 SLI_CLOSE 时,SLI 收到主机对 SNA SHUTC 命令的负面响应。 SLI_CLOSE 继续处理以停止会话。
LUA_NEGATIVE_RSP_SHUTD
辅助返回代码;LUA 接口在仍在处理 SLI_CLOSE 时收到主机对 SNA RSHUTD 命令的负面响应。 SLI_CLOSE 继续处理以停止会话。
LUA_RECEIVED_UNBIND
辅助返回代码; (PLU 的主逻辑单元) 会话处于活动状态时向 LUA 接口发送了 SNA UNBIND 命令。 因此,会话已停止。
LUA_NO_RUI_SESSION
辅助返回代码;尚未为发出的 LUA 谓词初始化会话,或者在初始化会话之前发出 了除 SLI_OPEN 以外的某个谓词。
LUA_LU_COMPONENT_DISCONNECTED
辅助返回代码;LU 组件不可用,因为它未正确连接。 确保电源已打开。
LUA_IN_PROGRESS
主返回代码;已收到异步命令,但未完成。LUA_COMM_SUBSYSTEM_ABENDED
主要返回代码;指示以下状况之一:此对话使用的节点遇到了 ABEND。
(TP) 事务程序与物理单元 (PU) 2.1 节点之间的连接已断开, (LAN 错误) 。
TP 计算机上的 SnaBase 遇到 ABEND。
LUA_COMM_SUBSYSTEM_NOT_LOADED
主要返回代码;处理谓词时无法加载或终止某个必需的组件。 因此无法通信。 请联系系统管理员以执行纠正措施。LUA_INVALID_VERB_SEGMENT
主要返回代码;VCB 超出了数据段的末尾。LUA_UNEXPECTED_DOS_ERROR
主返回代码;发出操作系统调用后,收到意外的操作系统返回代码,并在辅助返回代码中指定。LUA_STACK_TOO_SMALL
主要返回代码;应用程序的堆栈大小太小,无法执行谓词。 增加应用程序的堆栈大小。LUA_INVALID_VERB
主返回代码;谓词代码或操作代码(或两者)无效。 谓词未执行。
注解
有两种类型的 SLI_CLOSE:normal 和 ABEND。 对于正常收盘, lua_flag1.close_abend 设置为零。 正常关闭的序列可以作为主 (主机启动) 或 Windows LUA 应用程序) 请求的辅助 (启动。 在主要正常关闭期间,Windows LUA 接口:
读取 SHUTD 命令并将SESSION_END_REQUESTED状态发布到应用程序。
如有必要,) (编写 CHASE 命令。
根据需要) 读取和处理 (CHASE 命令响应。
(SHUTC) 命令写入关闭完成。
读取和处理 SHUTC 命令响应。
根据需要) 读取和处理 CLEAR 命令 (。
如有必要,) 编写 CLEAR 命令响应 (。
读取和处理 UNBIND 命令。
写入 UNBIND 命令响应。
停止会话。
在辅助正常关闭期间,Windows LUA 接口:
写入 RSHUTD 命令。
读取和处理 RSHUTD 命令响应。
根据需要) 读取和处理 CLEAR 命令 (。
如有必要,) 编写 CLEAR 命令响应 (。
读取和处理 UNBIND 命令。
写入 UNBIND 命令响应。
停止会话。
对于 ABEND 关闭, lua_flag1.close_abend 设置为 1,这会指示 Windows LUA 接口立即关闭会话。 SLI_CLOSE开始处理后,LU-LU 连接将终止,并通知 SSCP LU 无法维持会话。