SLI_PURGE

SLI_PURGE動詞會取消以等候條件發出的SLI_RECEIVE動詞。

下列結構描述動詞控制項區塊的LUA_COMMON成員, (SLI_PURGE使用的 VCB) 。

語法

  
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 名稱。

SLI_PURGE只有在lua_sid為零時,才需要此參數。

此參數長度為八個位元組,如果名稱小於八個字元,則以空格填補右邊 (0x20) 。

lua_extension_list_offset
SLI_PURGE未 使用,且 應該設定為零。

lua_cobol_offset
LUA 在 Microsoft® Host Integration Server 或 SNA Server 中使用,而且應該為零。

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

指出如果設定為 1,LUA 介面動詞會以非同步方式完成。

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) 會話使用中時,將 SNA UNBIND 命令傳送至 LUA 介面。 因此,會話已停止。

    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 嘗試停止會話時發生嚴重錯誤。 任何 LUA 要求都無法使用此 LU,直到從主機收到啟動邏輯單元 (ACTLU) 為止。

    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必須指向要取消SLI_RECEIVE VCB。 當SLI_PURGE取消SLI_RECEIVE成功時,SLI_RECEIVE的主要傳回碼將會設定為LUA_CANCELED。

另請參閱

RUI_INIT
SLI_OPEN
SLI_RECEIVE
SLI_SEND