SET_TP_PROPERTIES

SET_TP_PROPERTIES谓词使事务程序(TP)能够通过提供 LUWID 或请求 SNA 服务器生成新标识符并从此使用它们,将其逻辑工作单元标识符(LUWID)设置为现有值。 当 LUWID 由 SNA 服务器生成时,它保证是唯一的。 仅当启用了同步点支持时,才使用此谓词。

以下结构描述了 SET_TP_PROPERTIES 谓词使用的谓词控制块(VCB)。

语法

  
struct set_tp_properties {  
    unsigned short  opcode;  
    unsigned char   opext;  
    unsigned char   reserv2;  
    unsigned short  primary_rc;  
    unsigned long   secondary_rc;  
    unsigned char   tp_id[8];  
    unsigned char   set_prot_id;  
    unsigned char   new_prot_id;  
    unsigned char   prot_id[26];  
    unsigned char   set_unprot_id;  
    unsigned char   new_unprot_id;  
    unsigned char   unprot_id[26];  
    unsigned char   set_user_id;  
    unsigned char   reserv3;  
    unsigned char   user_id[10];  
    unsigned char   reserv4[10];  
};   

成员

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

opext
提供的参数。 指定谓词作扩展。 AP_EXTD_VCB位必须设置为指示 set_tp_properties 结构需要同步点支持。

reserv2
保留字段。

primary_rc
返回的参数。 指定 APPC 在谓词完成时设置的主要返回代码。 有效的返回代码因发布的 APPC 谓词而异。 有关此谓词的有效错误代码,请参阅返回代码。

secondary_rc
返回的参数。 指定 APPC 在谓词完成时设置的辅助返回代码。 有效的返回代码因发布的 APPC 谓词而异。 有关此谓词的有效错误代码,请参阅返回代码。

tp_id
提供的参数。 标识本地 TP。 此参数的值由调用 TP 中的 TP_STARTED 或调用的 TP 中的 RECEIVE_ALLOCATE 返回。

set_prot_id
提供的参数。 指示是否应修改 prot_id 成员。 法律值AP_YES或AP_NO。

new_prot_id
提供的参数。 指示Microsoft® Host Integration Server 是否应使用提供的 prot_id LUWID 成员,还是创建新的 LUWID。 法律值AP_YES(创建新的 LUWID)或AP_NO(使用提供的 LUWID)。

prot_id
此成员是参与 TP 的事务的受保护逻辑工作单元标识符。 如果 set_prot_id AP_NO,则忽略它。 如果 AP_NO new_unprot_id ,则为提供的参数;如果 new_unprot_id AP_YES,则为返回的参数。

事务中可以涉及多个 TP。 此标识符代表发起事务的 TP 分配,允许构成事务的会话在逻辑上连接。

prot_id可以表示为具有以下字段的luw_id_overlay结构:

typedef struct luw_id_overlay { unsigned char fqla_name_len; unsigned char fqla_name[17]; nsigned char instance[6]; unsigned char sequence[2];} LUW_ID_OVERLAY;

luw_id.fqla_name_len

原始 TP 的 LU 的完全限定 LU 名称的 1 字节长度。

luw_id.fqla_name

原始 TP 的 LU 的完全限定名称。 该名称以 17 字节 EBCDIC 字符串的形式返回,其中包含 NETID、句点和 LU 名称。 如果名称的长度小于 17 个字节, 则实例序列号 将紧随其后。 (请注意,因此,不应使用 luw_id_overlay 结构的字段来访问这些值。仅提供这些项是为了兼容。

luw_id.instance

由 LU 为发起的 TP 唯一生成的 6 字节字符串。

luw_id.sequence

一个 2 字节数字,指示工作单位的段。 (如果不支持同步点,则始终设置为 1。

如果 luw_id 长度小于 26 字节,则用 EBCDIC 空格填充右侧。

set_unprot_id
提供的参数。 指示是否应修改 unprot_id 成员。 法律值AP_YES或AP_NO。

new_unprot_id
提供的参数。 指示 Host Integration Server 是否应使用提供的 unprot_id LUWID 成员,还是创建新的 LUWID。 法律值AP_YES(创建新的 LUWID)或AP_NO(使用提供的 LUWID)。

unprot_id
此成员是参与 TP 的事务的未受保护的逻辑工作单元标识符。 如果 set_unprot_id AP_NO,则忽略它。 如果 AP_NO new_unprot_id ,则为提供的参数;如果 new_unprot_id AP_YES,则为返回的参数。

事务中可以涉及多个 TP。 此标识符代表发起事务的 TP 分配,允许构成事务的会话在逻辑上连接。

prot_id可以表示为具有以下字段的luw_id_overlay结构:

typedef struct luw_id_overlay { unsigned char fqla_name_len; unsigned char fqla_name[17]; nsigned char instance[6]; unsigned char sequence[2];} LUW_ID_OVERLAY;

luw_id.fqla_name_len

原始 TP 的 LU 的完全限定 LU 名称的 1 字节长度。

luw_id.fqla_name

原始 TP 的 LU 的完全限定名称。 该名称以 17 字节 EBCDIC 字符串的形式返回,其中包含 NETID、句点和 LU 名称。 如果名称的长度小于 17 个字节, 则实例序列号 将紧随其后。 (请注意,因此,不应使用 luw_id_overlay 结构的字段来访问这些值。它们仅用于兼容性。

luw_id.instance

由 LU 为发起的 TP 唯一生成的 6 字节字符串。

luw_id.sequence

一个 2 字节数字,指示工作单位的段。 (如果不支持同步点,则始终设置为 1。

如果 luw_id 长度小于 26 字节,则用 EBCDIC 空格填充右侧。

set_user_id
提供的参数。 指示是否应修改 user_id 成员。 法律值AP_YES或AP_NO。

reserve3
保留字段。

user_id
提供的参数。 指示应由分配请求中启动的 TP 使用的 user_id 。 该名称是一个 10 字节的 EBCDIC 字符串,用 EBCDIC 空格填充在右侧。 如果 set_user_id AP_NO,则忽略此参数。

reserve4
保留字段。

返回代码

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

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

AP_BAD_TP_ID

辅助返回代码; tp_id 的值与 APPC 分配的 TP 标识符不匹配。

AP_COMM_SUBSYSTEM_ABENDED
主要返回代码;指示以下条件之一:

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

  • TP 与 PU 2.1 节点之间的连接已中断(LAN 错误)。

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

    系统管理员应检查错误日志以确定 ABEND 的原因。

    AP_COMM_SUBSYSTEM_NOT_LOADED
    主要返回代码;处理谓词时,无法加载或终止所需的组件。 因此,无法进行通信。 请联系系统管理员以采取纠正措施。

    AP_INVALID_VERB_SEGMENT
    主要返回代码;VCB 超出了数据段的末尾。

    AP_STACK_TOO_SMALL
    主要返回代码;应用程序的堆栈大小太小,无法执行谓词。 增加应用程序的堆栈大小。

    AP_TP_BUSY
    主要返回代码;本地 TP 已发出对 APPC 的调用,而 APPC 正在处理同一 TP 的另一个调用。 如果本地 TP 有多个线程,并且多个线程使用相同的 tp_id发出 APPC 调用,则可能会出现这种情况。

    AP_UNEXPECTED_DOS_ERROR
    主要返回代码;作系统在处理来自本地 TP 的 APPC 调用时,已将错误返回到 APPC。 作系统返回代码通过 secondary_rc返回。 它以 Intel 字节交换的顺序显示。 如果问题仍然存在,请咨询系统管理员。

注解

此谓词与 TP(而不是规范对话)相关,因此 TP 可以在任何状态下发出谓词。 没有状态更改。

prot_idunprot_id成员包含fqla_name_len(LU 发起 TP 的完全限定 LU 名称的长度)、fqla_name(发起 TP 的 LU 的完全限定名称)、实例(由 TP 唯一生成的 LU)和序列(始终设置为 1 并指示工作单元段)的字段。

当受保护的 LUWID 发生更改时,应用程序(同步点支持组件)负责将新的 LUWID PS 标头传输到合作伙伴同步点支持。 同样,当收到新的 LUWID PS 标头时,应用程序必须发出 SET_TP_PROPERTIES 谓词来通知 LU。