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® Host Integration Server 中的 RUI 使用,而且應該設定為零。
lua_cobol_offset
LUA 不會在主機整合伺服器中使用,而且應該是零。
lua_sid
提供的參數。 指定會話識別碼,並由 SLI_OPEN 和 RUI_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_FMD (LUA_RH_FMD 0x00) FM資料區段LUA_RH_NC ( (0x20) 網路 (控制LUA_RH_DFC0x40 () ) 資料流程控制LUA_RH_SC 0x60) 會話控制)
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
次要傳回碼;lua_sid在 VCB 中指定了不正確值。
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_READ 或 RUI_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_BID與RUI_READ的主要差異在於,RUI_BID可讓應用程式檢查資料,而不需從傳入訊息佇列中移除資料,以便稍後再離開和存取。 RUI_READ 從佇列中移除訊息,因此當應用程式讀取資料時,也必須處理它。
使用 RUI_BID時,請注意下列事項:
RUI_INIT 必須在發出這個動詞之前順利完成。
一次只能處理一個 RUI_BID 。
RUI_BID成功完成之後,您可以在後續的RUI_READ上設定lua_flag1.bid_enable來重新發出。 如果以這種方式重新發出動詞,應用程式不得釋放或修改與 RUI_BID 記錄相關聯的儲存體。
如果當 RUI_READ 和 RUI_BID 都未完成時,訊息會從主機送達, 則RUI_READ 完成且 RUI_BID 正在進行中。
每則送達的訊息只會進行一次。 在RUI_BID指出資料正在等候特定會話流程之後,應用程式會發出RUI_READ來接收資料。 任何後續 RUI_BID 都不會報告到達該會話流程的資料,直到發出 RUI_READ已接受的訊息為止。
一般而言,在此動詞中傳回 的 lua_data_length 參數只會指出 lua_peek_data中的資料長度,而不是等候訊息上的資料總長度 (,除非傳回小於 12 的值) 。 應用程式應該確保接受資料 之RUI_READ 上的資料長度足以包含訊息。