SLI_RECEIVE_EX谓词还支持入站链接。 单个谓词可以接收的数据的最大长度为 4,294,967,295 字节。 这与SLI_RECEIVE谓词可以接收的最大 65,535 字节进行比较。
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 {
struct SLI_RECEIVE_EX_SPECIFIC {
unsigned long lua_data_length_ex;
unsigned long lua_max_length_ex;
将 lua_flag1.nowait 设置为 1,指示希望SLI_RECEIVE_EX立即返回数据是否可供读取,或者如果希望谓词在返回之前等待数据,则将其设置为零。
LUA_INVALID_FLOW
辅助返回代码;发出谓词时,
lua_flag1
流标志设置不正确:
发出SLI_SEND_EX_sna_SLI_SEND_EX_lua发送 SNA 响应时,仅设置一个lua_flag1流标志。
发出SLI_RECEIVE时,请至少设置一个lua_flag1流标志。
LUA_VERB_LENGTH_INVALID
辅助返回代码;LUA 谓词由 LUA 意外
lua_verb_length
发出。
LUA_STATE_CHECK
主要返回代码;该谓词未执行,因为它以无效状态发出。
LUA_NO_SLI_SESSION
辅助返回代码;在发出命令时,会话未打开或因
SLI_CLOSE
或会话故障而关闭。
LUA_RECEIVE_ON_FLOW_PENDING
辅助返回代码;当此应用程序为 SNA 流发出另一个
SLI_RECEIVE_EX
时,
SLI_RECEIVE_EX
仍然未完成。
LUA_SESSION_FAILURE
主要返回代码;辅助返回代码中指定的错误条件导致会话失败。
LUA_RUI_WRITE_FAILURE
辅助返回代码;
RUI_WRITE
向 SLI 发布意外错误。
LUA_RECEIVED_UNBIND
辅助返回代码;当会话处于活动状态时,主逻辑单元(PLU)将 SNA UNBIND 命令发送到 LUA 接口。 因此,会话已停止。
LUA_SLI_LOGIC_ERROR
辅助返回代码;LUA 接口在逻辑中发现了内部错误。
LUA_NO_RUI_SESSION
辅助返回代码;在初始化会话之前,未为发出 LUA 谓词或发出
SLI_OPEN
以外的某些谓词初始化会话。
LUA_MODE_INCONSISTENCY
辅助返回代码;当前状态不允许执行此函数。 即使已理解和支持半会话组件,也未执行发送到半会话组件的请求。 此 SNA 感知代码也是异常请求感知代码。
LUA_RECEIVER_IN_TRANSMIT_MODE
辅助返回代码;处理正常流数据所需的资源都不可用,或者在收到正常流请求时未收到半双工争用的状态。 结果是争用条件。 此 SNA 感知代码也是异常请求感知代码。
LUA_LU_COMPONENT_DISCONNECTED
辅助返回代码;LU 组件不可用,因为它未正确连接。 确保电源已打开。
LUA_FUNCTION_NOT_SUPPORTED
辅助返回代码;LUA 不支持请求的函数。 控制字符、请求/响应单元 (RU) 参数或格式化的请求代码可能已指定函数。 特定感知代码信息以字节 2 和 3 为单位。
LUA_CHAINING_ERROR
辅助返回代码;链指示器设置的顺序出错。 找到接收方当前会话控制或数据流控制状态的请求标头或请求单元无效。 已阻止传递到半会话组件。
LUA_BRACKET
辅助返回代码;发送方未能强制实施会话括号规则。 请注意,争用和争用条件不受此错误的免除。 找到接收方当前会话控制或数据流控制状态的请求标头或请求单元无效。 已阻止传递到半会话组件。
LUA_DIRECTION
辅助返回代码;虽然半双工翻转状态NOT_RECEIVE,但收到正常流的请求。 找到接收方当前会话控制或数据流控制状态的请求标头或请求单元无效。 已阻止传递到半会话组件。
LUA_DATA_TRAFFIC_QUIESCED
辅助返回代码;从发送 SHUTC 命令或 QC 命令的半会话收到数据流控制(DFC)或函数管理数据(FMD)请求,DFC 或 FMD 请求未响应 RELQ 命令。 找到接收方当前会话控制或数据流控制状态的请求标头或请求单元无效。 已阻止传递到半会话组件。
LUA_NO_BEGIN_BRACKET
辅助返回代码;收到指定 BBI=BB 的 BID 或 FMD 请求时,接收方已向 BIS 命令发送了正响应。 找到接收的当前会话控制或数据流控制状态的请求标头或请求单元无效。 已阻止传递到半会话组件。
LUA_IMMEDIATE_REQUEST_MODE_ERROR
辅助返回代码;请求违反了即时请求模式协议。 找到接收的当前会话控制或数据流控制状态的标头请求或请求单元无效。 已阻止传递到半会话组件。
LUA_QUEUED_RESPONSE_ERROR
辅助返回代码;请求违反了排队响应协议。 找到接收的当前会话控制或数据流控制状态的标头请求或请求单元无效。 已阻止传递到半会话组件。
LUA_ERP_SYNC_EVENT_ERROR
辅助返回代码;发生 ERP 同步事件协议冲突。 找到接收的当前会话控制或数据流控制状态的标头请求或请求单元无效。 已阻止传递到半会话组件。
LUA_RSP_CORRELATION_ERROR
辅助返回代码;发送的响应与以前收到的请求不对应,或者收到的响应与以前发送的请求不对应。
LUA_RSP_PROTOCOL_ERROR
辅助返回代码;在从主半会话收到的响应中发现了响应协议的冲突。
LUA_BB_NOT_ALLOWED
辅助返回代码;未正确指定开始方括号指示器。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
允许LUA_EB_NOT
辅助返回代码;未正确指定尾括号指示器。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_EXCEPTION_RSP_NOT_ALLOWED
辅助返回代码;如果不允许异常响应,则请求一个。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_DEFINITE_RSP_NOT_ALLOWED
辅助返回代码;如果不允许明确响应,则请求一个响应。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_CD_NOT_ALLOWED
辅助返回代码;未正确指定更改方向指示器。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_NO_RESPONSE_NOT_ALLOWED
辅助返回代码;除 EXR 以外的请求包含 NO 响应。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_CHAINING_NOT_SUPPORTED
辅助返回代码;链接指示器未正确指定。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_BRACKETS_NOT_SUPPORTED
辅助返回代码;括号指示器未正确指定。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_CD_NOT_SUPPORTED
辅助返回代码;已设置更改方向指示器,但 LUA 不支持这种情况的更改方向。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_INCORRECT_USE_OF_FI
辅助返回代码;格式指示器未正确指定。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_ALTERNATE_CODE_NOT_SUPPORTED
辅助返回代码;设置了代码选择指示器,但 LUA 不支持此会话的代码选择。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_INCORRECT_RU_CATEGORY
辅助返回代码;错误地指定了请求单位类别指示器。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_INCORRECT_REQUEST_CODE
辅助返回代码;错误地指定了请求代码。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_INCORRECT_SPEC_OF_SDI_RTI
辅助返回代码;未在响应中正确指定 SDI 和 RTI。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_INCORRECT_DR1I_DR2I_ERI
辅助返回代码;DR1I、DR2I 和 ERI 未正确指定。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_INCORRECT_USE_OF_QRI
辅助返回代码;未正确指定排队响应指示器。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_INCORRECT_USE_OF_EDI
辅助返回代码;EDI 未正确指定。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_INCORRECT_USE_OF_PDI
辅助返回代码;PDI 未正确指定。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_UNSUCCESSFUL
主要返回代码;提供的谓词记录有效,但谓词未成功完成。
LUA_DATA_TRUNCATED
辅助返回代码;数据被截断,因为收到的数据比
lua_max_length_ex
中指定的缓冲区长度长。
LUA_DATA_SEGMENT_LENGTH_ERROR
辅助返回代码;发生了以下事件之一:
为
SLI_RECEIVE_EX
或
SLI_SEND_EX
提供的数据段不是所需的读/写数据段。
提供的SLI_RECEIVE_EX数据段不如lua_max_length_ex中提供的数据段。
提供的SLI_SEND_EX数据段不如lua_data_length_ex中提供的数据段。
LUA_NO_DATA
辅助返回代码;当
SLI_RECEIVE_EX
未发出等待参数时,无法读取任何数据。
LUA_VERB_RECORD_SPANS_SEGMENTS
辅助返回代码;LUA VCB 长度参数加上段偏移量超出段末尾。
LUA_NOT_ACTIVE
辅助返回代码;发出 LUA 谓词时,LUA 在 Microsoft Host Integration Server 或 SNA Server 中未处于活动状态。
LUA_NOT_READY
辅助返回代码;以下其中一项导致 SLI 会话暂时挂起:
收到 SNA UNBIND 类型0x02命令,指示即将推出新的 BIND。 如果在开始SLI_OPEN完成后收到 UNBIND 类型
0x02
,会话将挂起,直到收到 BIND、可选 CRV 和 STSN 以及 SDT 流。 这些例程重新进入,因为它们必须再次调用。 SLI 处理 SDT 命令后,会话将恢复。 如果在
SLI_OPEN
仍在处理时收到 UNBIND 类型0x02,则主返回代码LUA_SESSION_FAILURE,而不是LUA_STATUS。
收到 SNA CLEAR 导致暂停。 收到 SNA SDT 将导致会话恢复。
LUA_SLI_LOGIC_ERROR
辅助返回代码;LUA 接口在逻辑中发现了内部错误。
LUA_INVALID_PROCESS
辅助返回代码;发出 LUA 谓词的会话不可用,因为另一个进程拥有该会话。
LUA_LU_INOPERATIVE
辅助返回代码;在 LUA 尝试停止会话时发生严重错误。 在从主机接收激活逻辑单元(ACTLU)之前,此 LU 不适用于任何 LUA 请求。
LUA_RECEIVE_CORRELATION_TABLE_FULL
辅助返回代码;会话接收请求的流的关联表已达到其容量。
LUA_NEGATIVE_RESPONSE
主要返回代码;LUA 向从主逻辑单元(PLU)接收的消息发送了负面响应,因为消息中发现了错误,或者应用程序对已到达链尾的链做出负面响应。
LUA_MODE_INCONSISTENCY
辅助返回代码;当前状态不允许执行此函数。 即使已理解和支持半会话组件,也未执行发送到半会话组件的请求。 此 SNA 感知代码也是异常请求感知代码。
LUA_FUNCTION_NOT_SUPPORTED
辅助返回代码;LUA 不支持请求的函数。 控制字符、RU 参数或格式化的请求代码可能已指定函数。 特定感知代码信息以字节 2 和 3 为单位。
LUA_DATA_TRAFFIC_RESET
辅助返回代码;活动会话的半会话,但具有非活动数据流量的流量收到了正常的流 DFC 或 FMD 请求。 找到接收方当前会话控制或数据流控制状态的请求标头或请求单元无效。 已阻止传递到半会话组件。
LUA_DATA_TRAFFIC_NOT_RESET
辅助返回代码;虽然数据流量状态未重置,但收到会话控制请求。 找到接收的当前会话控制或数据流控制状态的请求标头或请求单元无效。 已阻止传递到半会话组件。
LUA_SC_PROTOCOL_VIOLATION
辅助返回代码;发生 SC 协议冲突。 在所需的交换之前收到请求(仅在 SC 请求后才允许请求和成功交换该请求的正面响应)。 感知数据的字节 4 包含请求代码。 此感知代码不存在用户数据。 找到接收的当前会话控制或数据流控制状态的标头请求或请求单元无效。 已阻止传递到半会话组件。
LUA_INVALID_SC_OR_NC_RH
辅助返回代码;SC 或 NC 请求的 RH 无效。
LUA_PACING_NOT_SUPPORTED
辅助返回代码;当接收半会话或边界函数半会话不支持节奏时,请求包含一个节奏指示器。 请求标头参数值违反了之前选择的 BIND 选项或体系结构规则。 已阻止传递到半会话组件。 这些错误不依赖于当前会话状态。 发送方未能强制实施会话规则可能会导致错误。
LUA_NAU_INOPERATIVE
辅助返回代码;网络可寻址单元无法处理响应或请求。 由于以下原因之一无法传送到接收方:
路径信息单元错误
激活请求序列无效
如果在活动会话期间收到路径错误,则通常意味着会话伙伴不再有有效的路径。
LUA_CANCELED
主要返回代码;辅助返回代码提供取消命令的原因。
LUA_PURGED
辅助返回代码;
SLI_PURGE
已颁发并取消
SLI_RECEIVE
。
LUA_NO_SLI_SESSION
辅助返回代码;在发出命令时,会话未打开或因
SLI_CLOSE
或会话故障而关闭。
LUA_CANCEL_COMMAND_RECEIVED
辅助返回代码;主机发送了 SNA CANCEL 命令,以取消
当前SLI_RECEIVE_EX接收
的数据链。
LUA_TERMINATED
辅助返回代码;当谓词挂起时,会话已终止。 谓词过程已被取消。
LUA_IN_PROGRESS
主要返回代码;已收到异步命令,但未完成。
LUA_STATUS
主要返回代码;辅助返回代码包含应用程序的 SLI 状态信息。
LUA_READY
辅助返回代码;在“未就绪”状态后,会发出此状态,以通知 SLI 已准备好处理命令。
LUA_NOT_READY
辅助返回代码;SLI 会话暂时挂起,原因如下:
收到 SNA UNBIND 类型0x02命令,这意味着即将推出新的 BIND。 如果在开始SLI_OPEN完成后收到 UNBIND 类型
0x02
,会话将挂起,直到收到 BIND、可选 CRV 和 STSN 以及 SDT 流。 这些例程重新进入,因为它们必须再次调用。 SLI 处理 SDT 命令后,会话将恢复。 如果在
SLI_OPEN
仍在处理时收到 UNBIND 类型0x02,则主要返回代码为会话失败,而不是状态。
收到 SNA CLEAR 导致暂停。 收到 SNA SDT 将导致会话恢复。
LUA_INIT_COMPLETE
辅助返回代码;LUA 接口在
处理SLI_OPEN
时初始化了会话。 发出
lua_open_type_prim_sscp SLI_OPEN
的 LUA 应用程序会在
SLI_RECEIVE
或
SLI_BID
上收到此状态。
LUA_SESSION_END_REQUESTED
辅助返回代码;LUA 接口从主机收到 SNA SHUTD,这意味着主机已准备好关闭会话。
LUA_COMM_SUBSYSTEM_ABENDED
主要返回代码;指示以下条件之一:
此会话使用的节点遇到 ABEND。
事务程序(TP)与物理单元(PU)2.1 节点之间的连接已中断(LAN 错误)。
TP 计算机上的 SnaBase 遇到 ABEND。
LUA_COMM_SUBSYSTEM_NOT_LOADED
主要返回代码;处理谓词时,无法加载或终止所需的组件。 因此,无法进行通信。 请联系系统管理员以采取纠正措施。
LUA_INVALID_VERB_SEGMENT
主要返回代码;VCB 超出了数据段的末尾。
LUA_UNEXPECTED_DOS_ERROR
主要返回代码;发出作系统调用后,收到意外的作系统返回代码,并在辅助返回代码中指定。
LUA_STACK_TOO_SMALL
主要返回代码;应用程序的堆栈大小太小,无法执行谓词。 增加应用程序的堆栈大小。
LUA_INVALID_VERB
主要返回代码;谓词代码或作代码或两者都无效。 谓词未执行。
SLI_RECEIVE_EX
接收来自主机的响应、SNA 命令和请求单元数据。
SLI_RECEIVE_EX
还提供 Windows LUA 应用程序的会话状态。
SLI_RECEIVE_EX和SLI_RECEIVE之间的区别在于,SLI_RECEIVE_EX谓词支持入站链接,在单个谓词请求中最多可接收 4,295 KB。 相比之下,SLI_RECEIVE仅限于在动词请求中接收最多 64 KB。
必须先完成
SLI_OPEN
请求,然后才能发出SLI_RECEIVE_EX。 但是,如果SLI_OPEN lua_init_type设置为LUA_INIT_TYPE_PRIM_SSCP,则SLI_OPEN返回IN_PROGRESS后,就可以立即发出 SSCP 正常流的SLI_RECEIVE_EX。
应用程序在四个会话流之一中接收数据。 四个会话流,从最高优先级到最低优先级为:
SSCP 加速
LU 加速
SSCP 正常
LU 普通
lua_flag1
中指定
了SLI_RECEIVE_EX
处理的数据流类型。 应用程序还可以指定它是否希望查看多个类型的数据流。 设置多个流位时,首先接收最高优先级。
SLI_RECEIVE_EX
完成处理时,
lua_flag2
指示 Windows LUA 应用程序已接收数据的特定流类型。
如果在发出SLI_RECEIVE之前
SLI_BID
成功完成,则可以指示 Windows LUA 接口重复使用最后一个SLI_BID谓词 VCB。 为此,lua_flag1.bid_enable 设置为 1 的问题SLI_RECEIVE_EX。
使用 lua_flag1.bid_enable 时,不得释放SLI_BID存储,因为使用了最后一个SLI_BID谓词 VCB。 此外,使用 lua_flag1.bid_enable 时,将发布SLI_BID的成功完成。
如果没有数据可供接收时,SLI_RECEIVE_EX lua_flag1.nowait 颁发,LUA_NO_DATA将是 Windows LUA 接口设置的辅助返回代码。
会话状态返回值
如果LUA_STATUS是主要返回代码,辅助返回代码可以是下列代码之一:
LUA_READY
LUA_NOT_READY
LUA_SESSION_END_REQUESTED
LUA_INIT_COMPLETE
此外,如果LUA_STATUS是主要返回代码,则使用以下参数:
lua_sec_rc
lua_sid
LUA_READY在LUA_NOT_READY状态后返回,并指示 SLI 再次准备好执行所有命令。
LUA_NOT_READY指示 SLI 会话已暂停,因为 SLI 已收到 SNA CLEAR 命令或具有0X02 UNBIND 类型的 SNA UNBIND 命令(即将推出的 BIND 的 UNBIND)。 根据导致挂起的原因,可以按如下所示重新激活会话:
当挂起由 SNA CLEAR 引起时,接收 SNA SDT 会重新激活会话。
当 SNA UNBIND 类型 BIND 即将启动导致会话挂起并且打开会话
的SLI_OPEN
完成时,会话将挂起,直到 SLI 收到 BIND 和 SDT 命令。 会话还可以选择接收 STSN 命令。 因此,必须重新输入与初始SLI_OPEN颁发的用户提供的例程,因为它们将被召回。
应用程序可以在 CLEAR 或 UNBIND 类型 BIND 即将到达以及读取NOT_READY状态之前发送 SSCP 数据。 读取NOT_READY后,应用程序可以发送和接收 SSCP 数据。
当 SNA UNBIND 类型 BIND 即将到达之前,打开会话的SLI_OPEN完成时,LUA_SESSION_FAILURE(而不是LUA_STATUS)是主要返回代码。
LUA_SESSION_END_REQUESTED指示应用程序从主机收到 SNA SHUTD。 方便时,Windows LUA 应用程序应发出
SLI_CLOSE
关闭会话。
仅当LUA_INIT_TYPE_PRIM_SSCP
SLI_OPEN的lua_init_type
时,才会返回LUA_INIT_COMPLETE。 状态表示已足够处理SLI_OPEN,以便现在发送或接收 SSCP 数据。
如果主机应用程序请求单元转换为 EXR,将返回感知数据。
当SLI_BID
完成返回的谓词参数集,将发生 EXR 转换。