DISPLAY

DISPLAY 谓词返回 SNA 节点的配置信息和当前操作值。

建议使用 GetAppcConfig Windows 扩展函数获取与 APPC LU 相关的系统配置信息。 特别是,5250 个模拟器的用户应使用 GetAPPCConfig Windows 扩展。

注意

由于客户端/服务器体系结构的性质,Host Integration Server 上的 DISPLAY 谓词的实现与 IBM 扩展服务 for OS/2 版本 1.0 (IBM ES for OS/2 版本 1.0) 的重要差异。

注意

对于在 IBM ES for OS/2 版本 1.0 兼容模式下使用 APPC DISPLAY 谓词且不使用 Host Integration Server 扩展枚举所有活动服务器和连接的应用程序,主机集成服务器将随机选择默认 DISPLAY 连接,除非已在 SNA Manager 中配置了特定的默认 DISPLAY 连接。 此连接用作所有 DISPLAY 请求的基础。 有关指定默认 DISPLAY 连接的信息,请参阅 Host Integration Server 帮助。

以下结构描述了 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;   

成员

opcode
提供的参数。 指定谓词操作代码,AP_DISPLAY。

reserv2
保留字段,此值必须设置为 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
提供的参数。 指定是否请求有关定义的 TP 的附加管理器信息。 允许的值是AP_YES和AP_NO。

注意

主机集成服务器不支持此选项,此参数必须设置为 AP_NO。

tp_info
提供的参数。 指定是否请求有关活动 TP 和任何活动对话的信息。 允许的值是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
返回的参数。 指示数据缓冲区中附加管理器信息开头的地址。

注意

Host Integration Server 不支持此选项。

tp_info_ptr
返回的参数。 指示数据缓冲区中 TP 信息开头的地址。

注意

Host Integration Server 不支持此选项。

sess_info_ptr
返回的参数。 指示数据缓冲区中会话信息的起始地址。

link_info_ptr
返回的参数。 指示数据缓冲区中链接信息开头的地址。

lu_0_3_info_ptr
返回的参数。 指示数据缓冲区中 LU 信息开头的地址。

gw_info_ptr
返回的参数。 指示数据缓冲区中网关信息开头的地址。

x25_physical_link_info_ptr
返回的参数。 指示数据缓冲区中 X.25 信息开头的地址。

注意

Host Integration Server 不支持此选项。

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 返回了操作系统返回代码。 此返回代码是以 Intel 字节交换顺序显示的。 如果问题持续出现,请咨询系统管理员。

备注

DISPLAY 仅按别名标识 LU。 如果在域 (多次使用相同的本地 LU 别名用于备份或其他) 目的,并且该 LU 别名是通过 DISPLAY 指定的,则谓词可以流向与预期不同的 LU。

若要成功返回 DISPLAY 谓词,必须在 SNA 管理器程序 “显示谓词 ”对话框中定义特定的连接。 IBM 最初使用采用单个连接的 IBM OS/2 扩展版产品定义了 DISPLAY 谓词。 但是,由于 Host Integration Server 支持多个连接,因此必须配置与 DISPLAY 谓词关联的特定连接。

DISPLAY 谓词需要用户提供的缓冲区来返回系统信息。 如果缓冲区不够大,APPC 将返回AP_DISPLAY_INFO_EXCEEDS_LEN返回代码,以及 area_needed参数) 中 (请求时实际需要的大小。 使用此谓词的一种可能策略如下:

  • 如果 buffer_len 值小于 APPC 返回 的area_needed 值,并且所需的长度小于 64 KB) (,则将显示缓冲区的大小增加到等于或大于 area_needed 值。

  • 如果 area_needed 值大于 64KB,可以选择单独请求每个信息部分。 或者,可以执行以下步骤:

    1. 处理包含完整信息的信息部分,其显示的总数等于实际总数。

    2. 选择请求包含不完整信息的信息节的子集,并重新发出请求这些信息部分的动词。

    3. 根据需要重复步骤 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。

另请参阅

Host Integration Server 扩展
信息类型差异