SLI_PURGE
SLI_PURGE谓词取消SLI_RECEIVE具有等待条件的谓词。
以下结构描述了SLI_PURGE使用的谓词控制块 (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_PURGE。
lua_correlator
提供的参数。 包含用户提供的值,该值将谓词与其他用户提供的信息链接在一起。 LUA 不使用或更改此信息。 此参数是可选的。
lua_luname
提供的参数。 指定 Windows LUA 会话使用的本地 LU 的 ASCII 名称。
仅当lua_sid为零时,SLI_PURGE才需要此参数。
此参数长度为 8 个字节,如果名称短于 8 个字符,则用空格 (0x20) 在右侧填充。
lua_extension_list_offset
SLI_PURGE不使用,应设置为零。
lua_cobol_offset
MICROSOFT® 主机集成服务器或 SNA 服务器中的 LUA 不使用,应为零。
lua_sid
提供的参数。 指定会话标识符,由 SLI_OPEN 和 RUI_INIT 返回。 其他谓词使用此参数来标识用于命令的会话。 如果其他谓词使用 lua_luname 参数来标识会话,请将 lua_sid 参数设置为零。
lua_max_length
SLI_PURGE不使用,应设置为零。
lua_data_length
SLI_PURGE不使用,应设置为零。
lua_data_ptr
发出 SLI_PURGE 时,此参数指向要取消 的SLI_RECEIVE 谓词 VCB 的位置。
lua_post_handle
提供的参数。 如果异步通知要由事件完成,则用于 Microsoft Windows Server 下。 此变量包含要发出信号的事件的句柄或窗口句柄。
lua_th
SLI_PURGE不使用,应设置为零。
lua_rh
SLI_PURGE不使用,应设置为零。
lua_flag1
SLI_PURGE不使用,应设置为零。
lua_message_type
SLI_PURGE不使用,应设置为零。
lua_flag2
返回的参数。 包含 LUA 返回的消息的标志。
lua_flag2.async
指示 LUA 接口谓词在设置为 1 时异步完成。
lua_resv56
保留,应设置为零。
lua_encr_decr_option
SLI_PURGE不使用,应设置为零。
返回代码
LUA_OK
主要返回代码;谓词已成功执行。
LUA_SEC_OK
辅助返回代码;不存在用于LUA_OK的其他信息。
LUA_PARAMETER_CHECK
主要返回代码;由于参数错误,谓词未执行。
LUA_INVALID_LUNAME
辅助返回代码;指定的 lua_luname 无效。
LUA_BAD_SESSION_ID
辅助返回代码;在 VCB 中指定 了lua_sid 的无效值。
LUA_BAD_DATA_PTR
辅助返回代码; lua_data_ptr 参数不包含有效的指针或未指向读/写段,并且需要提供的数据。
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_NO_RECEIVE_TO_PURGE
辅助返回代码;发出 SLI_PURGE 时,没有 SLI_RECEIVE未完成。 以下两种情况之一导致了问题:
SLI_RECEIVE 在 SLI_PURGE 完成处理之前完成。 可以更改应用程序来解决此问题,因为它不是错误条件。
lua_data_ptr 参数未正确指向要清除SLI_RECEIVE。
LUA_SLI_PURGE_PENDING
辅助返回代码;发出另一 个SLI_PURGE 时, SLI_PURGE 仍处于活动状态。 一次只能有一个 SLI_PURGE 处于活动状态。
LUA_SESSION_FAILURE
主返回代码;辅助返回代码中指定的错误条件导致会话失败。LUA_RECEIVED_UNBIND
辅助返回代码; (PLU 的主逻辑单元) 会话处于活动状态时向 LUA 接口发送了 SNA UNBIND 命令。 因此,会话已停止。
LUA_LU_COMPONENT_DISCONNECTED
辅助返回代码;LU 组件不可用,因为它未正确连接。 确保电源已打开。
LUA_UNSUCCESSFUL
主返回代码;提供的谓词记录有效,但谓词未成功完成。LUA_VERB_RECORD_SPANS_SEGMENTS
辅助返回代码;LUA VCB 长度参数加上段偏移量超出段末尾。
LUA_NOT_ACTIVE
辅助返回代码;发出 LUA 谓词时,LUA 在 Microsoft Host Integration Server 或 SNA Server 中未处于活动状态。
LUA_NOT_READY
辅助返回代码;以下任一事件导致 SLI 会话暂时挂起:
收到 SNA UNBIND 类型0x02命令,这表示新的 BIND 即将到来。 如果在开始SLI_OPEN完成后收到 UNBIND 类型 0x02 ,会话将暂停,直到收到 BIND、可选 CRV 和 STSN 以及 SDT 流。 这些例程会重新进入,因为它们必须再次调用。 会话在 SLI 处理 SDT 命令后恢复。 如果在SLI_OPEN仍在处理时收到 UNBIND 类型 0x02 ,则主返回代码SESSION_FAILURE,而不是LUA_STATUS。
SNA CLEAR 的接收导致暂停。 收到 SNA SDT 将导致会话恢复。
LUA_INVALID_PROCESS
辅助返回代码;发出请求单元接口 (RUI) 谓词的会话不可用,因为另一个 OS/2 进程拥有该会话。
LUA_LU_INOPERATIVE
辅助返回代码;RUI 尝试停止会话时发生严重错误。 在从主机收到激活的逻辑单元 (ACTLU) 之前,此 LU 对于任何 LUA 请求不可用。
LUA_CANCELED
主返回代码;辅助返回代码提供取消命令的原因。LUA_TERMINATED
辅助返回代码;当谓词挂起时,会话已终止。 谓词进程已取消。
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_PURGE 取消具有等待条件 的SLI_RECEIVE 命令。
通常,如果SLI_RECEIVE完成时间过长,则会发出SLI_PURGE。 若要取消SLI_RECEIVE,lua_data_ptr必须指向要取消的 VCB SLI_RECEIVE。 当SLI_PURGE成功取消SLI_RECEIVE时,SLI_RECEIVE的主返回代码将设置为LUA_CANCELED。