DISPLAY 動詞會回傳 SNA 節點的設定資訊及當前操作值。
建議使用 GetAppcConfig Windows 擴充功能來取得與 APPC LU 相關的系統設定資訊。 特別是 5250 模擬器的使用者,應使用 GetAPPCConfig Windows 擴充功能。
備註
由於客戶端/伺服器架構的特性,主機整合伺服器上 DISPLAY 動詞的實作與其基礎的 IBM OS/2 擴展服務 1.0(IBM ES for OS/2 1.0)有重要差異。
備註
對於在 IBM ES for OS/2 1.0 相容模式下使用 APPC DISPLAY 動詞,且未使用主機整合伺服器擴充功能來列舉所有活躍伺服器與連線的應用程式,主機整合伺服器會隨機選擇預設的 DISPLAY 連線,除非在 SNA Manager 中設定了特定的預設 DISPLAY 連線。 此連線作為所有 DISPLAY 請求的基礎。 關於如何指定預設 的 DISPLAY 連線,請參閱主機整合伺服器說明。
以下結構描述了 DISPLAY 動詞所使用的動詞控制區塊。
語法
struct display {
unsigned short opcode;
unsigned char reserv2[2];
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned long init_sect_len;
unsigned long buffer_len;
unsigned char FAR * buffer_ptr;
unsigned long num_sections;
unsigned long display_len;
unsigned long area_needed;
unsigned char sna_global_info;
unsigned char lu62_info;
unsigned char am_info;
unsigned char tp_info;
unsigned char sess_info;
unsigned char link_info;
unsigned char lu_0_3_info;
unsigned char gw_info;
unsigned char x25_physical_link_info;
unsigned char sys_def_info;
unsigned char adapter_info;
unsigned char lu_def_info;
unsigned char plu_def_info;
unsigned char mode_def_info;
unsigned char link_def_info;
unsigned char ms_info;
struct sna_global_info_sect FAR * sna_global_info_ptr;
struct lu62_info_sect FAR * lu62_info_ptr;
struct am_info_sect FAR * am_info_ptr;
struct tp_info_sect FAR * tp_info_ptr;
struct sess_info_sect FAR * sess_info_ptr;
struct link_info_sect FAR * link_info_ptr;
struct lu_0_3_info_sect FAR * lu_0_3_info_ptr;
struct gw_info_sect FAR * gw_info_ptr;
struct x25_physical_link_info_sect FAR * x25_physical_link_info_ptr;
struct sys_def_info_sect FAR * sys_def_info_ptr;
struct adapter_info_sect FAR * adapter_info_ptr;
struct lu_def_info_sect FAR * lu_def_info_ptr;
struct plu_def_info_sect FAR * plu_def_info_ptr;
struct mode_def_info_sect FAR * mode_def_info_ptr;
struct link_def_info_sect FAR * link_def_info_ptr;
struct ms_info_sect FAR * ms_info_ptr;
} DISPLAY;
成員
作業碼
提供的參數。 指定動詞操作代碼 AP_DISPLAY。
後備隊2
保留欄位,此值必須設為 NULL。
primary_rc
回傳參數。 指定 APPC 在動詞結束時設定的主要回傳代碼。 有效的回傳代碼會依 APPC 所發出的動詞而有所不同。 請參閱返回代碼以了解此動詞的有效錯誤代碼。
secondary_rc
回傳參數。 指定 APPC 在動詞完成時設定的次要回傳碼。 有效的回傳代碼會依 APPC 所發出的動詞而有所不同。 請參閱返回代碼以了解此動詞的有效錯誤代碼。
init_sect_len
提供的參數。 指定 VCB 初始區段的位元組數,直到資訊指標的開頭。 此參數與 num_sections 參數必須依請求格式設定為特定值。 詳情請見下方註解。
buffer_len
提供的參數。 指定傳送顯示資料緩衝區的長度(0 到 65535 位元組)。
buffer_ptr
提供的參數。 提供顯示資料緩衝區的位址,該緩衝區將包含所請求的資訊。
num_sections
提供的參數。 指定動詞可回傳的最大資訊區段數量。 此參數與 init_sect_len 參數必須根據所請求的格式設定為特定值。 詳情請見下方註解。
display_len
回傳參數。 提供回傳到顯示資料緩衝區的總位元組數。
area_needed
回傳參數。 提供所有顯示資料所需的總位元組數。
sna_global_info
提供的參數。 指定是否需要全域資訊。 允許的值有AP_YES和AP_NO。
lu62_info
提供的參數。 指定是否要求所有活躍的 LU、其合作夥伴及模式的資訊。 允許的值有AP_YES和AP_NO。
am_info
提供的參數。 指定是否要求 Atta Manager 在定義的 TP 上提供資訊。 允許的值有AP_YES和AP_NO。
備註
此選項不被主機整合伺服器支援,且此參數必須設為AP_NO。
tp_info
提供的參數。 指定是否需要查詢活躍的傳送點及任何活躍對話的資訊。 允許的值有AP_YES和AP_NO。
備註
此選項不被主機整合伺服器支援,且此參數必須設為AP_NO。
sess_info
提供的參數。 指定是否需要請求會話資訊。 允許的值有AP_YES和AP_NO。
link_info
提供的參數。 指定是否需要請求啟用的 SNA 邏輯線資訊。 允許的值有AP_YES和AP_NO。
lu_0_3_info
提供的參數。 指定是否需要查詢邏輯單元類型 0、1、2 和 3 的資訊。 允許的值有AP_YES和AP_NO。
gw_info
提供的參數。 指定是否需要 SNA 閘道上的資訊。 允許的值有AP_YES和AP_NO。
x25_physical_link_info
提供的參數。 規定是否需要 X.25 資訊。 允許的值有AP_YES和AP_NO。
備註
此選項不被主機整合伺服器支援,且此參數必須設為AP_NO。
sys_def_info
提供的參數。 指定是否會要求有關預設 LU、節點名稱及入站與出站隱含夥伴的預設參數資訊。 允許的值有AP_YES和AP_NO。
adapter_info
提供的參數。 規定是否會要求有關已設定通訊介面卡的資訊。 允許的值有AP_YES和AP_NO。 當要求 NS/2 格式時,此參數必須設為 AP_NO。
lu_def_info
提供的參數。 指定是否會要求有關定義 LU 的資訊。 允許的值有AP_YES和AP_NO。
plu_def_info
提供的參數。 指定是否需要查詢定義夥伴 LU 的資訊。 允許的值有AP_YES和AP_NO。
mode_def_info
提供的參數。 指定是否會請求關於已定義節點的資訊。 允許的值有AP_YES和AP_NO。
link_def_info
提供的參數。 指定是否會請求有關定義邏輯連結的資訊。 允許的值有AP_YES和AP_NO。
ms_info
提供的參數。 規定是否需查詢管理服務相關資訊。 允許的值有AP_YES和AP_NO。 當要求 NS/2 格式時,此參數必須設為 AP_NO。
sna_global_info_ptr
回傳參數。 表示資料緩衝區中 SNA 全域資訊起始地址。
lu62_info_ptr
回傳參數。 表示資料緩衝區中 LU 6.2 資訊開頭的位址。
am_info_ptr
回傳參數。 表示資料緩衝區中 Attach Manager 資訊起始位址。
備註
此選項不被主機整合伺服器支援。
tp_info_ptr
回傳參數。 表示資料緩衝區中 TP 資訊起始位址。
備註
此選項不被主機整合伺服器支援。
sess_info_ptr
回傳參數。 表示資料緩衝區中會話起始資訊的位址。
link_info_ptr
回傳參數。 表示資料緩衝區中連結資訊起始地址。
lu_0_3_info_ptr
回傳參數。 表示資料緩衝區中 LU 資訊起始地址。
gw_info_ptr
回傳參數。 表示資料緩衝區中閘道資訊起始地址。
x25_physical_link_info_ptr
回傳參數。 表示資料緩衝區中 X.25 資訊開頭的位址。
備註
此選項不被主機整合伺服器支援。
sys_def_info_ptr
回傳參數。 表示資料緩衝區中系統預設資訊起始地址。
adapter_info_ptr
回傳參數。 表示資料緩衝區中介面卡起始資訊的位址。
lu_def_info_ptr
回傳參數。 表示資料緩衝區中本地 LU 定義資訊起始地址。
plu_def_info_ptr
回傳參數。 表示資料緩衝區中合作夥伴 LU 定義資訊起始地址。
mode_def_info_ptr
回傳參數。 表示資料緩衝區中模式起始定義資訊的位址。
link_def_info_ptr
回傳參數。 表示資料緩衝區中連結定義資訊起始地址。
ms_info_ptr
回傳參數。 表示資料緩衝區中管理服務起始資訊的位址。
返回碼
AP_OK
主要退稅代碼;動詞成功執行。
AP_PARAMETER_CHECK
主要退稅代碼;該動詞因參數錯誤而未執行。
AP_DISPLAY_INVALID_CONSTANT
次要回傳代碼;NUM_SECTIONS或INIT_SEC_LEN所提供的數值無效。
AP_STATE_CHECK
主要退稅代碼;該動詞未執行,因為它以無效狀態發出。
AP_DISPLAY_INFO_EXCEEDS_LEN
次要回傳代碼;回傳的 DISPLAY 資訊無法在緩衝區中出現。
AP_INVALID_DATA_SEGMENT
次要回傳代碼;包含資料緩衝區的區段對指定的資料長度來說太小。
AP_COMM_SUBSYSTEM_ABENDED
主要退稅代碼;表示以下條件之一:
本次對話所使用的節點遇到了 ABEND。
TP 與 2.1 型節點之間的連線已中斷(LAN 錯誤)。
TP電腦旁的SnaBase遇到了ABEND。
AP_COMM_SUBSYSTEM_NOT_LOADED
主要退稅代碼;在處理動詞時,必須的元件無法被載入或終止。 因此,無法進行溝通。 請聯絡系統管理員以採取糾正措施。
AP_INVALID_VERB_SEGMENT
主要退稅代碼;VCB 的範圍超出資料區段的末端。
AP_STACK_TOO_SMALL
主要退稅代碼;應用程式的堆疊大小太小,無法執行該動詞。 增加你的應用程式堆疊大小。
AP_UNEXPECTED_DOS_ERROR
主要退稅代碼;作業系統在處理來自本地 TP 的 APPC 呼叫時,曾回傳錯誤給 APPC。 作業系統的回傳碼會透過 secondary_rc回傳。 它以英特爾位元組互換順序出現。 如果問題持續,請諮詢系統管理員。
備註
DISPLAY 僅透過別名來識別 LU。 如果同一區域的本地 LU 別名在同一領域中多次使用(用於備份或其他用途),且該 LU 別名是透過 DISPLAY 指定,動詞可能會流向與預期不同的 LU。
為了成功回傳 DISPLAY 動詞,必須在 SNA Manager 程式的 顯示動 詞對話框中定義特定連接。 IBM 最初在 IBM OS/2 擴展版產品中定義了 DISPLAY 動詞,該產品假設只有單一連接。 然而,由於主機整合伺服器支援多重連線,必須設定與 DISPLAY 動詞相關的特定連線。
DISPLAY 動詞需要使用者提供的緩衝區來回傳系統資訊。 若緩衝區不夠大,APPC 會回傳AP_DISPLAY_INFO_EXCEEDS_LEN回傳碼,並返回請求時實際所需的大小( area_needed 參數中)。 使用此動詞的一種可能策略如下:
如果 buffer_len 值小於 APPC 回傳的 area_needed ,且所需長度小於 64 KB,則將顯示緩衝區大小增加至等於或大於 area_needed 值。
如果 area_needed 值大於 64KB,你可以選擇分別請求每個資訊區塊。 或者,你可以採取以下步驟:
處理資訊區段,包含完整資訊,顯示總數等於實際總數。
選擇你所請求的資訊區塊中包含不完整資訊的子集,並重新發出請求該資訊區段的動詞。
視需要重複步驟 a 和 b。
備註
若個別資訊區塊超過 64 KB,則無法從 APPC 取得所有所需資訊。
DISPLAY 動詞不應從同一程序的不同執行緒執行,因為它並非執行緒安全。
若 init_sect_len 和 num_sections 的參數未設定以下值,DISPLAY 會回傳 AP_DISPLAY_INVALID_CONSTANT:
| NS/2 格式 | IBM EE 格式 | NS/2 格式(僅限 Windows) | IBM EE 格式(僅限 Windows) | |
|---|---|---|---|---|
| init_sect_len | 50 | 44 | 52 | 48 |
| num_sections | 16 | 9 | 16 | 9 |
當以下參數未正確設定時,也會返回AP_DISPLAY_INVALID_CONSTANT:
reserv2 必須設為 NULL。
am_info 必須設定為AP_NO。
tp_info 必須設為AP_NO。
若要求 NS/2 格式,adapter_info 必須設為 AP_NO。
若要求 NS/2 格式,ms_info 必須設為 AP_NO。