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_OPENRUI_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_RECEIVESLI_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。

另请参阅

RUI_INIT
SLI_OPEN
SLI_RECEIVE
SLI_SEND