SLI_SEND_EX

SLI_SEND_EX谓词将响应、SNA 命令和数据从 Microsoft® Windows® 逻辑单元应用程序 (LUA) 应用程序发送到主机逻辑单元 (LU)。

SLI_SEND_EX谓词还支持入站链接。 单个谓词可以发送的数据的最大长度为 4,294,967,295 字节。 这与SLI_SEND谓词最多可以发送的 65,535 字节进行比较。

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

下面的第二个语法联合描述了SLI_SEND_EX使用的 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 {  
    struct SLI_SEND_EX_SPECIFIC {  
        unsigned char lua_sequence_number[2];  
        unsigned long lua_data_length_ex;  
    };  
};  

成员

lua_verb
提供的参数。 包含谓词代码,LUA_VERB_SLI会话级别接口 (SLI) 谓词。

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

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

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

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

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

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

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

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

lua_extension_list_offset
SLI_SEND_EX 不使用,应 设置为零。

lua_cobol_offset
MICROSOFT Host Integration Server 或 SNA Server 中® LUA 未使用,应设置为零。

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

lua_max_length
SLI_SEND_EX 不使用,应 设置为零。

lua_data_length
此参数是保留的,必须设置为零。

要发送的数据长度在 lua_data_length_ex 参数中设置。

lua_data_ptr
指向应用程序提供的缓冲区的指针,其中包含要通过 SLI_SEND_EX发送到主机的数据。

SNA 命令和数据都放置在此缓冲区中,并且它们可以采用扩展的二进制编码十进制交换代码(EBCDIC)格式。

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

lua_th
返回的参数。 包含收到的消息的 SNA 传输标头(TH)。 为写入函数设置各种子参数,并为读取和投标函数返回。 它的子参数如下所示:

lua_th.flags_fid

格式标识类型 2,4 位。

lua_th.flags_mpf

分段映射字段,两位。 定义数据段的类型。 以下为有效值:

0x00中间段0x04最后一段0x080x0C段

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_WRITESLI_SEND,并由 RUI_READRUI_BID返回。 对于 SLI_SEND_EX 的 RH,使用队列响应指示器(lua_rh.qri)和节奏指示器(lua_rh.pi)以外的所有字段。

lua_rh.rri

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

lua_rh.ruc

请求/响应单位(RU)类别,两位。

lua_rh.fi

格式指示器,一位。

lua_rh.sdi

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

lua_rh.bci

开始链指示器,一位。

lua_rh.eci

结束链指示器,一位。

lua_rh.dr1i

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

lua_rh.dr2i

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

lua_rh.ri

异常响应指示器(对于请求),或响应类型指示器(对于响应),一位。

lua_rh.qri

排队响应指示器,一位。

lua_rh.pi

Pacing 指示器,一位。

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
指定入站或出站 SNA 命令和数据的类型。 这是 SLI_SEND_EX提供的参数。

可能的值如下所示:

LUA_MESSAGE_TYPE_LU_DATA

LUA_MESSAGE_TYPE_SSCP_DATA

LUA_MESSAGE_TYPE_RSP

LUA_MESSAGE_TYPE_BID

LUA_MESSAGE_TYPE_BIS

LUA_MESSAGE_TYPE_CANCEL

LUA_MESSAGE_TYPE_CHASE

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_SIGNAL

SLI 通过 LUA 接口扩展例程接收和响应 BIND 和 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

指示 SSCP 加速流(如果设置为 1)。

lua_flag2.sscp_norm

如果设置为 1,则指示 SSCP 正常流。

lua_flag2.lu_exp

指示设置为 1 的 LU 加速流。

lua_flag2.lu_norm

如果设置为 1,则指示 LU 正常流。

lua_resv56
保留,应设置为零。

lua_encr_decr_option
SLI_SEND_EX 不使用,应 设置为零。

lua_sequence_number
SLI_SEND_EX使用的LUA_SPECIFIC的联合成员。 返回的参数。 包含链请求单元中的第一个或链请求单元中唯一段的序列号。 请注意,此参数不是字节反向的。

lua_data_length_ex
SLI_SEND_EX使用的LUA_SPECIFIC的联合成员。 提供的参数。 指定要发送的数据的长度。

返回代码

LUA_OK
主要返回代码;已成功执行谓词。

LUA_SEC_OK

辅助返回代码;LUA_OK不存在其他信息。

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

LUA_INVALID_LUNAME

辅助返回代码;指定了无效 lua_luname

LUA_BAD_SESSION_ID

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

LUA_BAD_DATA_PTR

辅助返回代码; lua_data_ptr 参数要么不包含有效的指针,要么不指向读/写段,并且提供的数据是必需的。

LUA_RESERVED_FIELD_NOT_ZERO

辅助返回代码;刚刚颁发的谓词的保留参数未设置为零。

LUA_INVALID_POST_HANDLE

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

LUA_INVALID_FLOW

辅助返回代码;发出谓词时, lua_flag1 流标志设置不正确:

发出 SLI_SEND_EX 发送 SNA 响应时,仅设置一 个lua_flag1 流标志。

发出 SLI_RECEIVE_EX时,请至少设置一个lua_flag1流标志。

LUA_VERB_LENGTH_INVALID

辅助返回代码;LUA 谓词由 LUA 意外 lua_verb_length 发出。

LUA_REQUIRED_FIELD_MISSING

辅助返回代码;发出谓词要么不包含数据指针(如果数据计数不为零),也没有包括 lua_flag1 流标志。

LUA_INVALID_MESSAGE_TYPE

辅助返回代码; LUA 接口无法识别lua_message_type参数。

LUA_DATA_LENGTH_ERROR

辅助返回代码;应用程序未提供所发出谓词所需的用户提供的数据。 请注意,当为 SNA LUSTAT 命令发出 SLI_SEND_EX 时,需要状态(以四个字节为单位),并且当 SLI_OPEN 发出辅助初始化时,需要数据。

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

LUA_NO_SLI_SESSION

辅助返回代码;在发出命令时,会话未打开或因 SLI_CLOSE 或会话故障而关闭。

LUA_MAX_NUMBER_OF_SENDS

辅助返回代码;应用程序在完成之前发布了第三个 SLI_SENDSLI_SEND_EX

LUA_SEND_ON_FLOW_PENDING

辅助返回代码;当应用程序为 SNA 流发出另一个SLI_SEND_EX时,SLI_SENDSLI_SEND_EX仍然未完成。

LUA_SESSION_FAILURE
主要返回代码;辅助返回代码中指定的错误条件导致会话失败。

LUA_RECEIVED_UNBIND

辅助返回代码;当会话处于活动状态时,主逻辑单元(PLU)将 SNA UNBIND 命令发送到 LUA 接口。 因此,会话已停止。

LUA_SLI_LOGIC_ERROR

辅助返回代码;LUA 接口在逻辑中发现了内部错误。

LUA_NO_RUI_SESSION

辅助返回代码;未为发出 LUA 谓词初始化会话,或者在初始化会话之前发出 SLI_OPEN 以外的某些谓词。

LUA_LU_COMPONENT_DISCONNECTED

辅助返回代码;LU 组件不可用,因为它未正确连接。 确保电源已打开。

LUA_DATA_SEGMENT_LENGTH_ERROR

辅助返回代码;发生了以下事件之一:

SLI_RECEIVE_EXSLI_SEND_EX 提供的数据段不是所需的读/写数据段。

提供的SLI_RECEIVE_EX数据段不如lua_max_length_ex中提供的数据段。

提供的SLI_SEND_EX数据段不如lua_data_length_ex中提供的数据段。

LUA_VERB_RECORD_SPANS_SEGMENTS

辅助返回代码;LUA VCB 长度参数加上段偏移量超出段末尾。

LUA_NOT_ACTIVE

辅助返回代码;发出 LUA 谓词时,LUA 在 Microsoft Host Integration Server 或 SNA Server 中未处于活动状态。

LUA_SLI_LOGIC_ERROR

辅助返回代码;LUA 接口在逻辑中发现了内部错误。

LUA_INVALID_PROCESS

辅助返回代码;发出 LUA 谓词的会话不可用,因为另一个 OS/2 进程拥有该会话。

LUA_LU_INOPERATIVE

辅助返回代码;在 LUA 尝试停止会话时发生严重错误。 在从主机接收激活逻辑单元(ACTLU)之前,此 LU 不适用于任何 LUA 请求。

LUA_MODE_INCONSISTENCY

辅助返回代码;当前状态不允许执行此函数。 即使已理解和支持半会话组件,也未执行发送到半会话组件的请求。 此 SNA 感知代码也是异常请求感知代码。

LUA_INSUFFICIENT_RESOURCES

辅助返回代码;资源不足的临时条件导致请求接收方无法执行。 发送到半会话组件的请求未执行,即使已理解并支持该请求。

LUA_SEND_CORRELATION_TABLE_FULL

辅助返回代码;会话发送请求的流的相关表已达到其容量。

LUA_RU_LENGTH_ERROR

辅助返回代码;RU 请求长度不正确(太短或太长)。 即使请求单元已传递到半会话组件,也不会解释或处理请求单元。 半会话功能不匹配。 此 SNA 感知代码也是异常请求感知代码。

LUA_FUNCTION_NOT_SUPPORTED

辅助返回代码;LUA 不支持请求的函数。 控制字符、RU 参数或格式化的请求代码可能已指定函数。 特定感知代码信息以字节 2 和 3 为单位。

LUA_HDX_BRACKET_STATE_ERROR

辅助返回代码;现有状态错误阻止了当前请求的发送。 该决定是由协议计算机做出的。

LUA_RESPONSE_ALREADY_SENT

辅助返回代码;已发送链的响应,以便未发送当前请求。 该决定是由协议计算机做出的。

LUA_EXR_SENSE_INCORRECT

辅助返回代码;应用程序对异常请求做出负面响应。 感知代码是不能接受的。

LUA_RESPONSE_OUT_OF_ORDER

辅助返回代码;当前响应不是针对最早的请求。 该决定是由协议计算机做出的。

LUA_CHAIN_RESPONSE_REQUIRED

辅助返回代码;尝试了最近的请求时,CHASE 响应仍然未完成。 该决定是由协议计算机做出的。

LUA_BRACKET

辅助返回代码;发送方未能强制实施会话括号规则。 请注意,争用和争用条件不受此错误的免除。 找到接收方当前会话控制或数据流控制状态的请求标头或请求单元无效。 已阻止传递到半会话组件。

LUA_DIRECTION

辅助返回代码;虽然半双工翻转状态NOT_RECEIVE,但收到正常流的请求。 找到接收方当前会话控制或数据流控制状态的请求标头或请求单元无效。 已阻止传递到半会话组件。

LUA_DATA_TRAFFIC_RESET

辅助返回代码;活动会话的半会话,但具有非活动数据流量的流量收到了正常的流数据流控制(DFC)或函数管理数据(FMD)请求。 找到接收方当前会话控制或数据流控制状态的请求标头或请求单元无效。 已阻止传递到半会话组件。

LUA_DATA_TRAFFIC_QUIESCED

辅助返回代码;从发送 SHUTC 命令或 QC 命令的半会话收到 DFC 或 FMD 请求,DFC 或 FMD 请求未响应 RELQ 命令。 找到接收方当前会话控制或数据流控制状态的请求标头或请求单元无效。 已阻止传递到半会话组件。

LUA_DATA_TRAFFIC_NOT_RESET

辅助返回代码;虽然数据流量状态未重置,但收到会话控制请求。 找到接收的当前会话控制或数据流控制状态的请求标头或请求单元无效。 已阻止传递到半会话组件。

LUA_NO_BEGIN_BRACKET

辅助返回代码;收到指定 BBI=BB 的 BID 或 FMD 请求时,接收方已向 BIS 命令发送了正响应。 找到接收的当前会话控制或数据流控制状态的请求标头或请求单元无效。 已阻止传递到半会话组件。

LUA_SC_PROTOCOL_VIOLATION

辅助返回代码;发生 SC 协议冲突。 在所需的交换之前收到请求(仅在 SC 请求后才允许请求和成功交换该请求的正面响应)。 感知数据的字节 4 包含请求代码。 此感知代码不存在用户数据。 找到无效的标头请求或数据流控制状态。 已阻止传递到半会话组件。

LUA_IMMEDIATE_REQUEST_MODE_ERROR

辅助返回代码;请求违反了即时请求模式协议。 找到接收的当前会话控制或数据流控制状态的标头请求或请求单元无效。 已阻止传递到半会话组件。

LUA_QUEUED_RESPONSE_ERROR

辅助返回代码;请求违反了排队响应协议。 找到接收的当前会话控制或数据流控制状态的标头请求或请求单元无效。 已阻止传递到半会话组件。

LUA_ERP_SYNC_EVENT_ERROR

辅助返回代码;发生 ERP 同步事件协议冲突。 找到接收的当前会话控制或数据流控制状态的标头请求或请求单元无效。 已阻止传递到半会话组件。

LUA_RSP_BEFORE_SENDING_REQ

辅助返回代码;以前收到的请求尚未响应,并且尝试在半双工发送/接收模式下发送正常流请求。 找到接收的当前会话控制或数据流控制状态的标头请求或请求单元无效。 已阻止传递到半会话组件。

LUA_RSP_CORRELATION_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 以外的请求包含“无响应”。请求标头参数值违反了之前选择的 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_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_NO_SESSION

辅助返回代码;激活会话的请求是必需的,因为源目标对的接收端节点中不存在活动半会话,或者提供边界函数的节点中不存在源目标对的活动边界函数半会话组件。 由于以下原因之一,无法传递请求:

路径信息单元错误

路径中断

激活请求序列无效

如果在活动会话期间收到路径错误,则通常表示会话伙伴不再有有效路径。

LUA_CANCELED
主要返回代码;辅助返回代码提供取消命令的原因。

LUA_TERMINATED

辅助返回代码;当谓词挂起时,会话已终止。 谓词过程已被取消。

LUA_IN_PROGRESS
主要返回代码;已收到异步命令,但未完成。

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_SEND_EX 将响应、SNA 命令和数据从 Windows LUA 应用程序发送到主机 LU。

SLI_SEND_EX和SLI_SEND之间的区别在于,SLI_SEND_EX谓词支持入站链接,并且可以在单个谓词请求中最多发送 4,295 KB。 相比之下,SLI_SEND仅限于在动词请求中发送最多 64 KB。 单个SLI_SEND_EX或SLI_SEND谓词定义链。 单个SLI_RECEIVE_EX或SLI_RECEIVE谓词接收整个链。

会话必须已打开才能针对特定 LU-LU 会话流发出SLI_SEND_EX。 若要在 完成SLI_OPEN之前在 SSCP 正常流上发送数据,会话必须已初始化为具有 SSCP 访问权限的主流。 此外,会话状态必须INIT_COMPLETE。

lua_message_type设置确定将由SLI_SEND_EX完成的处理类型。 下表指示根据lua_message_type值设置的参数。

SLI_SEND_EX参数 LU_DATA

SSCP_DATA
出价

BIS

RTR
追逐

QC
LUSTAT_LU

LUSTAT_SSCP
QEC

RELQ

SBI

信号
RQR RSP
lua_data
_长度
Req. 0 0 Req. 0 0 Req. (如果没有数据)0
lua_data
_ptr
Req. (如果没有数据)0 0 0 Req. 0 0 Req. (如果没有数据)0
lua_flag1流标志 0 0 0 0 0 0 Req. (设置一)
lua_rh FI DRL1 DRL2 RI BBI EBI CDI CSI EDI SDI QRI SDI QRI EBI CDI SDI QRI DRL1 DRL2 RI BBI EBI CDI SDI 0 RRI RI
lua_th 0 0 0 0 0 0 SNF

lua_data_ptr中提供的位置以及lua_data_length_ex中提供的长度决定了 SLI 发送的数据。 如有必要,数据将由 SLI 谓词链接。

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

  • 设置所选 lua_flag1 流标志。

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

  • 将lua_message_type设置为LUA_MESSAGE_TYPE_RSP。

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

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

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

另请参阅

RUI_INIT
RUI_READ
RUI_WRITE
SLI_BID
SLI_CLOSE
SLI_OPEN
SLI_RECEIVE_EX