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 名称。
仅当 lua_sid 为零时, RUI_BID 才需要此参数。
此参数长度为 8 个字节,如果名称短于 8 个字符,则用空格 (0x20) 在右侧填充。
lua_extension_list_offset
不在 Microsoft® Host Integration Server 中由 RUI 使用,应设置为零。
lua_cobol_offset
不在 Host Integration Server 中由 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) 。 为写入函数设置各种子参数,并为 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) 。 它是为写入函数设置的,由 read 和 bid 函数返回。 其子参数如下所示:
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
请求) 的异常响应指示器 (,或响应) 的响应类型指示器 (一位。
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
指示 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_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_READ 或 RUI_BID 通知应用程序已发送负面响应。
辅助返回代码包含针对负响应发送到主机的感知代码。 有关解释可返回的感知代码值的信息,请参阅 使用 LUA 的 SNA 注意事项。
零辅助返回代码表示,在对链中间的消息做出负面响应之前 RUI_WRITE 之后,LUA 现在已接收并丢弃了来自此链的所有消息。
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_BID 由需要通知消息正在等待读取的应用程序使用。 这样,应用程序就可以在发出 RUI_READ之前确定如何处理消息。
当消息可用时, RUI_BID 将返回接收消息时的消息流、消息类型、消息的 TH 和 RH 以及最多 12 个字节的消息数据的详细信息。
RUI_BID和RUI_READ之间的main区别在于,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_READ 接受投标的消息之前,任何后续 RUI_BID都不会报告到达该会话流的数据。
通常,在此谓词上返回 的lua_data_length 参数仅指示 lua_peek_data中的数据长度,而不是等待消息 (上的数据总长度,除非) 返回的值小于 12。 应用程序应确保接受 数据的RUI_READ 上的数据长度足以包含消息。