共用方式為


RUI_BID

RUI_BID動詞會通知要求單位介面 (RUI) 應用程式,訊息正等候使用 RUI_READ 讀取。

下列結構描述RUI_BID所使用的動詞控制區塊 (VCB) LUA_COMMON成員:

第二個語法聯集描述RUI_BID所使用的動詞控制區塊 (VCB) LUA_SPECIFIC成員。 為了清楚起見,會省略其他聯集成員:

語法

  
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;  
};  
union LUA_SPECIFIC {  
    unsigned char lua_peek_data[12];  
};  

成員

lua_verb
提供的參數。 包含動詞程式代碼,LUA_VERB_RUI RUI 動詞命令。

lua_verb_length
提供的參數。 指定邏輯單元應用程式 (LUA) VCB 的位元組長度。 它必須包含所發出動詞記錄的長度。

lua_prim_rc
LUA 在動詞完成時設定的主要傳回碼。 有效的傳回碼會根據所發出的 LUA 動詞而有所不同。

lua_sec_rc
LUA 在動詞完成時所設定的次要傳回碼。 有效的傳回碼會根據所發出的 LUA 動詞而有所不同。

lua_opcode
提供的參數。 包含要發出動詞的 LUA 命令程式代碼(動詞作業程式代碼),LUA_OPCODE_RUI_BID。

lua_correlator
提供的參數。 包含使用者提供的值,這個值會鏈接動詞與其他使用者提供的資訊。 LUA 不會使用或變更這項資訊。 這是選擇性參數。

lua_luname
提供的參數。 指定 Windows LUA 工作階段所使用的本機 LU 的 ASCII 名稱。

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

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

lua_extension_list_offset
Microsoft主機整合伺服器中 ® RUI 未使用,且應設定為零。

lua_cobol_offset
在主機整合伺服器中,LUA 不會使用 ,而且應該是零。

lua_sid
提供的參數。 指定會話標識碼,並由 SLI_OPENRUI_INIT傳回。 其他動詞會使用此參數來識別用於命令的會話。 如果其他動詞使用 lua_luname 參數來識別會話,請將 lua_sid 參數設定為零。

lua_max_length
RUI_BID未 使用,且 應設定為零。

lua_data_length
傳回的參數。 指定RUI_BID lua_peek_data中傳回的數據長度。

lua_data_ptr
這個參數未使用,而且應該設定為零。

lua_post_handle
提供的參數。 如果事件要完成異步通知,則用於Microsoft Windows Server。 此變數包含要發出訊號的事件句柄或視窗句柄。

lua_th
傳回的參數。 包含所接收訊息的 SNA 傳輸標頭 (TH)。 針對寫入函式設定各種子參數,並針對讀取和投標函式傳回。 其子參數如下所示:

lua_th.flags_fid

格式識別類型 2,四個位。

lua_th.flags_mpf

區隔對應欄位,兩個位。 定義數據區段的類型。 下列是有效值:

0x00 中間區段0x04 最後一個區段0x08 僅限第一個區段0x0C 區段

lua_th.flags_odai

原始位址欄位 -目的地位址字段 (OAF–DAF) 指派器指標,一個位。

lua_th.flags_efi

加速流程指示器,一位。

lua_th.daf

目的地位址欄位 (DAF),不帶正負號的字元。

lua_th.oaf

原始位址欄位 (OAF),不帶正負號的字元。

lua_th.snf

序號欄位,不帶正負號的 char[2]。

lua_rh
傳回的參數。 包含已傳送或接收之訊息的 SNA 要求 /回應標頭 (RH)。 它會設定為寫入函式,並由讀取和投標函式傳回。 其子參數如下所示:

lua_rh.rri

要求響應指標,一個位。

lua_rh.ruc

RU 類別,兩個位。 下列是有效值:

LUA_RH_FMD0x00) FM 數據區段LUA_RH_NC (0x20) 網路控制LUA_RH_DFC0x40) 數據流控制LUA_RH_SC0x60) 工作階段控制

lua_rh.fi

格式指標,一個位。

lua_rh.sdi

感知數據報含指標,一位。

lua_rh.bci

開始鏈結指標,一個位。

lua_rh.eci

結束鏈結指標,一個位。

lua_rh.dr1i

明確的回應 1 指標,一個位。

lua_rh.dr2i

明確的回應 2 指標,一個位。

lua_rh.ri

例外狀況回應指標(適用於要求),或回應類型指標(針對回應),一個位。

lua_rh.qri

佇列回應指標,一個位。

lua_rh.pi

步調指標,一個位。

lua_rh.bbi

開始方括弧指標,一個位。

lua_rh.ebi

尾括弧指標,一個位。

lua_rh.cdi

變更方向指標,一個位。

lua_rh.csi

程式代碼選取指標,一個位。

lua_rh.edi

加密的數據指標,一個位。

lua_rh.pdi

填補的數據指標,一個位。

lua_flag1
提供的參數。 包含包含應用程式所提供訊息旗標的資料結構。 其子參數如下所示:

lua_flag1.bid_enable

投標啟用指標,一個位。

lua_flag1.close_abend

關閉立即指標,一個位。

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
傳回的參數。 指定向 RUI_BID指示的 SNA 訊息類型。 可能的值為:

LUA_MESSAGE_TYPE_LU_DATA

LUA_MESSAGE_TYPE_SSCP_DATA

LUA_MESSAGE_TYPE_BID

LUA_MESSAGE_TYPE_BIND

LUA_MESSAGE_TYPE_BIS

LUA_MESSAGE_TYPE_CANCEL

LUA_MESSAGE_TYPE_CHASE

LUA_MESSAGE_TYPE_CLEAR

LUA_MESSAGE_TYPE_CRV

LUA_MESSAGE_TYPE_LUSTAT_LU

LUA_MESSAGE_TYPE_LUSTAT_SSCP

LUA_MESSAGE_TYPE_QC

LUA_MESSAGE_TYPE_QEC

LUA_MESSAGE_TYPE_RELQ

LUA_MESSAGE_TYPE_RQR

LUA_MESSAGE_TYPE_RTR

LUA_MESSAGE_TYPE_SBI

LUA_MESSAGE_TYPE_SHUTD

LUA_MESSAGE_TYPE_SIGNAL

LUA_MESSAGE_TYPE_SDT

LUA_MESSAGE_TYPE_STSN

LUA_MESSAGE_TYPE_UNBIND

會話層級介面 (SLI) 會透過 LUA 介面擴充例程接收和回應 BIND、CRV 和 STSN 要求。

LU_DATA、LUSTAT_LU、LUSTAT_SSCP和SSCP_DATA不是 SNA 命令。

lua_flag2
傳回的參數。 包含 LUA 所傳回之訊息的旗標。 其子參數如下所示:

lua_flag2.bid_enable

表示如果設定為 1,則已成功重新啟用 RUI_BID

lua_flag2.async

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

lua_flag2.sscp_exp

如果設定為 1,表示 SSCP 加速流程。

lua_flag2.sscp_norm

如果設定為 1,則表示 SSCP 一般流程。

lua_flag2.lu_exp

如果設定為 1,則表示 LU 加速流程。

lua_flag2.lu_norm

如果設定為 1,則表示 LU 一般流程。

lua_resv56
保留且應設定為零。

lua_encr_decr_option
保留且應設定為零。

lua_peek_data
RUI_BID和SLI_BID詞所使用的LUA_SPECIFIC聯集成員。 傳回的參數。 包含最多12個字節的數據等待讀取。

回傳代碼

LUA_OK
主要傳回碼;已順利執行動詞。

LUA_CANCELED
主要傳回碼;動詞未順利完成,因為已由另一個動詞命令取消。

LUA_TERMINATED

次要傳回碼; 這個動詞暫止時,已發出RUI_TERM。

LUA_PARAMETER_CHECK
主要傳回碼;因為參數錯誤而未執行動詞。

LUA_BAD_SESSION_ID

次要傳回碼;在 VCB 中指定 無效lua_sid值。

LUA_BID_ALREADY_ENABLED

次要傳回碼; RUI_BID 被拒絕,因為先前 的RUI_BID 已經未完成。 一次只能處理一個 RUI_BID

LUA_INVALID_POST_HANDLE

次要傳回碼;對於使用事件做為異步張貼方法的 Windows作系統,Windows LUA VCB 不包含有效的事件句柄。

LUA_RESERVED_FIELD_NOT_ZERO

次要傳回碼;動詞記錄中的保留欄位或這個動詞未使用的參數已設定為非零值。

LUA_VERB_LENGTH_INVALID

次要傳回碼;LUA 動詞是由 LUA 非預期的 lua_verb_length 值所發出。

LUA_STATE_CHECK
主要傳回碼;指令動詞未執行,因為發出狀態無效。

LUA_NO_RUI_SESSION

次要傳回碼; RUI_INIT 尚未順利完成此動詞中指定的 LU 名稱。

LUA_UNSUCCESSFUL
主要傳回碼;提供的動詞記錄有效,但動詞未順利完成。

LUA_INVALID_PROCESS

次要傳回碼;發出此動詞的程式與發出此會話 RUI_INIT 的程式不同。 只有啟動工作階段的程式可以發出該工作階段的動詞命令。

LUA_NEGATIVE_RSP
主要傳回碼;LUA 偵測到從主機接收的數據發生錯誤。 LUA 不會將收到的訊息傳遞至 RUI_READ上的應用程式,而是捨棄訊息(如果訊息位於鏈結中,則會捨棄該訊息的其餘部分),並將負回應傳送給主機。

LUA 會通知應用程式後續 RUI_READRUI_BID 已傳送負面回應。

次要傳回碼包含以負回應傳送至主機的感知碼。 如需解譯可傳回之感知碼值的相關信息,請參閱 使用 LUA 的 SNA 考慮

零次要傳回碼表示,在鏈結中間對訊息的先前 RUI_WRITE 負面響應之後,LUA 現在已接收並捨棄此鏈結中的所有訊息。

LUA_COMM_SUBSYSTEM_ABENDED
主要傳回碼;表示下列其中一個條件:

  • 此交談所使用的節點遇到 ABEND。

  • 交易程式 (TP) 與實體單位 (PU) 2.1 節點之間的連線已中斷(LAN 錯誤)。

  • TP 電腦上的 SnaBase 遇到 ABEND。

    LUA_SESSION_FAILURE
    主要傳回碼;必要的主機整合伺服器元件已終止。

    LUA_LU_COMPONENT_DISCONNECTED

    次要傳回碼;表示 LUA 工作階段因為連結服務或主機 LU 發生問題而失敗。

    LUA_RUI_LOGIC_ERROR

    次要傳回碼;在 LUA 內偵測到內部錯誤。 在正常作業期間不應該發生此錯誤。

    LUA_INVALID_VERB
    主要傳回碼;動詞程式代碼或作業程序代碼或兩者都無效。 動詞未執行。

    LUA_STACK_TOO_SMALL
    主要傳回碼;應用程式的堆疊大小太小,無法執行動詞。 增加應用程式的堆疊大小。

    LUA_COMM_SUBSYSTEM_NOT_LOADED
    主要傳回碼;無法載入必要的元件,或處理動詞時已終止。 因此,無法進行通訊。 請連絡系統管理員以採取更正動作。

    LUA_UNEXPECTED_DOS_ERROR
    主要傳回碼;發出作系統呼叫之後,收到非預期的作系統傳回碼,並在次要傳回碼中指定。

備註

應用程式 會使用RUI_BID,要求通知訊息正在等候讀取。 這可讓應用程式判斷在發出 RUI_READ之前如何處理訊息。

當訊息可供使用時, RUI_BID 傳回訊息流程的詳細數據、訊息類型、訊息的 TH 和 RH,以及最多 12 個字節的訊息數據。

RUI_BIDRUI_READ之間的主要差異在於,RUI_BID可讓應用程式檢查數據,而不需從傳入消息佇列中移除數據,以便稍後可以離開並存取數據。 RUI_READ 從佇列中移除訊息,因此當應用程式讀取數據時,它也必須處理它。

使用 RUI_BID 時,請注意下列事項:

  • RUI_INIT 必須在發出這個動詞之前順利完成。

  • 一次只能處理一個 RUI_BID

  • 順利完成RUI_BID之後,就可以在後續RUI_READ上設定 lua_flag1.bid_enable 來重新發出。 如果以這種方式重新發出動詞,應用程式不得釋放或修改與 RUI_BID 記錄相關聯的記憶體。

  • 如果 當RUI_READRUI_BID 都未完成時,訊息會從主機送達, 則RUI_READ 完成且 RUI_BID 正在進行中。

    抵達的每個訊息只會出價一次。 RUI_BID指出數據正在等候特定工作階段流程之後,應用程式會發出RUI_READ來接收數據。 在發出RUI_READ接受投標訊息之前,任何後續RUI_BID都不會報告抵達該會話流程的數據。

    一般而言,在此動詞中傳回 的lua_data_length 參數只會指出 lua_peek_data中的數據長度,而不是等候訊息上的數據總長度(除非傳回小於 12 的值)。 應用程式應該確保接受數據 之RUI_READ 上的數據長度足以包含訊息。

另請參閱

RUI_INIT
RUI_READ
RUI_TERM
RUI_WRITE
SLI_OPEN