RUI_WRITE

RUI_WRITE谓词通过 LU 会话或 SSCP) 会话的系统服务控制点,将逻辑单元应用程序 (LUA) 应用程序的 SNA 请求或响应 (单元发送到主机,并将响应、SNA 命令和数据从 Microsoft® Windows® LUA 应用程序发送到主机 LU。

以下结构描述了 RUI_WRITE 使用的谓词控制块 (VCB) LUA_COMMON成员。

语法

  
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_RUI请求单元接口 (RUI) 谓词。

lua_verb_length
提供的参数。 指定 LUA VCB 的长度(以字节为单位)。 它必须包含要发出的谓词记录的长度。

lua_prim_rc
由 LUA 在谓词完成时设置的主要返回代码。 有效的返回代码因发出的 LUA 谓词而异。

lua_sec_rc
完成谓词时由 LUA 设置的辅助返回代码。 有效的返回代码因发出的 LUA 谓词而异。

lua_opcode
提供的参数。 包含 LUA 命令代码 (要发出谓词的谓词操作代码) ,LUA_OPCODE_RUI_WRITE。

lua_correlator
提供的参数。 包含用户提供的值,该值将谓词与其他用户提供的信息链接在一起。 LUA 不使用或更改此信息。 此参数是可选的。

lua_luname
提供的参数。 指定 Windows LUA 会话使用的本地 LU 的 ASCII 名称。

仅当 lua_sid 为零时, RUI_WRITE 才需要此参数。

此参数长度为 8 个字节,如果名称短于 8 个字符,则用空格 (0x20) 在右侧填充。

lua_extension_list_offset
不在 Microsoft® Host Integration Server 中由 RUI 使用,应设置为零。

lua_cobol_offset
不在 Host Integration Server 中由 LUA 使用,应为零。

lua_sid
提供并返回的参数。 指定会话标识符,由 SLI_OPENRUI_INIT 返回。 其他谓词使用此参数来标识用于命令的会话。 如果其他谓词使用 lua_luname 参数来标识会话,请将 lua_sid 参数设置为零。

lua_max_length
不由RUI_WRITE使用,应设置为零。

lua_data_length
返回的参数。 指定RUI_BID谓词在lua_peek_data中返回的数据的长度。

lua_data_ptr
指向包含要通过 RUI_WRITE发送到主机的数据的缓冲区。

SNA 命令和数据都放置在此缓冲区中,它们可以采用 EBCDIC 格式。

lua_post_handle
提供的参数。 如果异步通知将由事件完成,则使用 Microsoft Windows 下。 此变量包含要发出信号的事件的句柄或窗口句柄。

lua_th
返回的参数。 包含发送或接收的消息的 SNA 传输标头 (TH) 。 为写入函数设置各种子参数,并为 read 和 bid 函数返回。 其子参数如下所示:

lua_th.flags_fid

格式标识类型 2,4 位。

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

序列号字段,无符号字符[2]。

lua_rh
返回的参数。 包含发送或接收的消息的 SNA 请求/响应标头 (RH) 。 对于 RUI_WRITE 的 RH,将使用队列响应指示器 (lua_rh.qri) 和节奏指示器 (lua_rh.pi) 之外的所有字段。 其子参数如下所示:

lua_rh.rri

请求-响应指示器,一位。

lua_rh.ruc

RU 类别,两位。 以下为有效值:

LUA_RH_NC () (0x20) 网络控制LUA_RH_DFC (0x40) 数据流控制LUA_RH_SC LUA_RH_SC 0x60) 会话控制LUA_RH_FMD fm 数据段LUA_RH_NC (0x00 0x60) FM 数据段

lua_rh.fi

格式指示器,一位。

lua_rh.sdi

感知数据包括指示器,一位。

lua_rh.bci

开始链指示器,一位。

lua_rh.eci

端链指示器,一位。

lua_rh.dr1i

明确响应 1 指标,1 位。

lua_rh.dr2i

明确响应 2 指示器,一位。

lua_rh.ri

请求) 的异常响应指示符 (,或响应) 的响应类型指示器 ((1 位)。

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 正常流,一位。

将以下标志之一设置为 1 以指示要发送数据的消息流:

lua_flag1.sscp_exp

lua_flag1.sscp_norm

lua_flag1.lu_exp

lua_flag1.lu_norm

lua_message_type
RUI_WRITE不使用,应设置为零。

lua_flag2
返回的参数。 包含 LUA 返回的消息的标志。 其子参数如下所示:

lua_flag2.bid_enable

指示如果设置为 1,则成功重新启用 RUI_BID

lua_flag2.async

指示 LUA 接口谓词在设置为 1 时异步完成。

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_OK
主要返回代码;谓词已成功执行。

LUA_CANCELED
主返回代码;谓词未成功完成,因为它已被另一个谓词取消。

LUA_TERMINATED

辅助返回代码;谓词已取消,因为已为此会话发出 RUI_TERM

LUA_PARAMETER_CHECK
主要返回代码;由于参数错误,谓词未执行。

LUA_BAD_DATA_PTR

辅助返回代码; lua_data_ptr 参数包含无效值。

LUA_BAD_SESSION_ID

辅助返回代码;在 VCB 中指定 了lua_sid 的无效值。

LUA_DUPLICATE_WRITE_FLOW

辅助返回代码; RUI_WRITE 已未完成此谓词中指定的会话流, (通过将其中一个 lua_flag1 流标志设置为 1) 来指定会话流。 每个会话流一次只能有一 个RUI_WRITE 未完成。

LUA_INVALID_FLOW

辅助返回代码; lua_flag1.sscp_exp 流标志已设置,指示应在 SSCP 加速流上发送消息。 LUA 不允许应用程序在此流上发送数据。

LUA_INVALID_POST_HANDLE

辅助返回代码;对于使用事件作为异步过帐方法的 Windows 操作系统,Windows LUA VCB 不包含有效的事件句柄。

LUA_MULTIPLE_WRITE_FLOWS

辅助返回代码;多个 lua_flag1 流标志设置为 1。 必须将其中一个标志设置为 1,以指示要发送数据的会话流。

LUA_REQUIRED_FIELD_MISSING

辅助返回代码;指示以下情况之一:

  • 未设置 任何lua_flag1 流标志。 必须将其中一个标志和其中一个标志设置为 1。

  • RUI_WRITE 用于发送响应,响应所需的数据比提供的要多。

    LUA_RESERVED_FIELD_NOT_ZERO

    辅助返回代码;谓词记录中的保留字段或此谓词未使用的参数已设置为非零值。

    LUA_VERB_LENGTH_INVALID

    辅助返回代码;LUA 谓词发出,其值为 LUA 意外lua_verb_length

    LUA_STATE_CHECK
    主要返回代码;谓词未执行,因为它是在无效状态下发出的。

    LUA_MODE_INCONSISTENCY

    辅助返回代码; RUI_WRITE 发送的 SNA 消息目前无效。 这是由于在绑定会话之前尝试在 LU 会话上发送数据而导致的。 检查发送的 SNA 消息的顺序。

    LUA_NO_RUI_SESSION

    辅助返回代码; RUI_INIT 尚未成功完成此谓词上指定的 LU 名称。

    LUA_UNSUCCESSFUL
    主返回代码;提供的谓词记录有效,但谓词未成功完成。

    LUA_FUNCTION_NOT_SUPPORTED

    辅助返回代码;指示以下情况之一:

  • lua_rh.fi 位 (格式指示器) 设置为 1,但提供的 RU 的第一个字节不是可识别的请求代码。

  • lua_rh.ruc 参数 (RU 类别) 指定网络控制 (NC) 类别;LUA 不允许应用程序发送此类别的请求。

    LUA_INVALID_PROCESS

    辅助返回代码;发出此谓词的 OS/2 进程与发出此会话 RUI_INIT 的进程不同。 只有启动会话的进程才能在该会话上发出动词。

    LUA_INVALID_SESSION_PARAMETERS

    辅助返回代码;应用程序使用 RUI_WRITE 向从主机收到的 BIND 消息发送正面响应。 但是,主机集成服务器无法接受指定的 BIND 参数,并且已向主机发送了负面响应。 有关 Host Integration Server 接受的 BIND 配置文件的详细信息,请参阅 使用 LUA 的 SNA 注意事项

    LUA_RSP_CORRELATION_ERROR

    辅助返回代码;使用 RUI_WRITE 发送响应时, lua_th.snf (指示响应) 收到的消息的序列号不包含有效值。

    LUA_RU_LENGTH_ERROR

    辅助返回代码; lua_data_length 参数包含无效值。 在 LU 正常流上发送数据时,最大长度在从主机接收的 BIND 中指定;对于所有其他流,最大长度为 256 个字节。

注意

任何其他辅助返回代码都是 SNA 感知代码,指示提供的 SNA 数据无效或无法发送。 有关解释可返回的 SNA 感知代码的信息,请参阅 使用 LUA 的 SNA 注意事项

LUA_COMM_SUBSYSTEM_ABENDED
主要返回代码;指示以下状况之一:

  • 此对话使用的节点遇到了 ABEND。

  • (TP) 事务程序与物理单元 (PU) 2.1 节点之间的连接断开, (LAN 错误) 。

  • TP 计算机上的 SnaBase 遇到 ABEND。

    LUA_SESSION_FAILURE
    主返回代码;所需的 Host Integration Server 组件已终止。

    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_INIT。

发送 SNA 请求时,必须设置 lua_rh 中的所有适用值。 链接和括号是应用程序的责任。

发送响应时,响应类型确定 所需的RUI_WRITE 信息。 对于所有响应,必须:

  • 将所选 lua_rh.rri 标志设置为 1。

  • lua_th.snf 中为要响应的请求提供序列号。

    对于多链消息响应,必须使用最后收到的链元素的序列号。 对于以 CANCEL 命令结尾的多链消息的响应,请使用 CANCEL 命令序列号。

    对于仅需要请求代码的正面响应,请将 lua_rh.ri 设置为零, (指示响应为正 ) ,lua_data_length 设置为零, (指示) 未提供任何数据。 请求代码由 RUI 使用提供的序列号填充。

    对于负面响应,请将 lua_rh.ri 设置为 1,lua_data_ptr 为 SNA 感知代码地址, lua_data_length 为 SNA 感知代码长度 (4 个字节) 。 RUI 使用序列号来填充请求代码。

    对于需要响应中数据的 BIND 和 STSN 命令的正面响应,请将 lua_data_ptr 设置为指向响应,并将 lua_data_length 设置为 lua_data_ptr 中提供的数据的长度。

    当现有 RUI_WRITE 处于挂起状态时,仅当它指定与挂起 RUI_WRITE 不同的会话流时,才能发出第二 个RUI_WRITE。 对于同一会话流,不能有多个 未完成RUI_WRITE

    成功RUI_INIT 后,可以随时对 SSCP 正常流发出 RUI_WRITERUI_WRITE LU 加速或 LU 正态流上的谓词仅在收到 BIND 后才允许,并且必须遵守 BIND 上指定的协议。

    成功完成RUI_WRITE表示消息已成功排队到数据链接。 它不一定指示消息已成功发送,或者主机接受了它。

    可以在 BIND) 中指定的辅助到主要半会话 (上使用节奏,以防止 LUA 应用程序发送的数据超过本地或远程 LU 可以处理的数据。 如果是这种情况,LUA 可能会延迟 LUA 正常流的 RUI_WRITE ,并且可能需要一些时间才能完成。

另请参阅

RUI_INIT
RUI_READ
RUI_TERM
SLI_OPEN
SLI_PURGE
SLI_RECEIVE
SLI_SEND