GET_TP_PROPERTIES

GET_TP_PROPERTIES谓词返回事务程序 (TP) 和当前事务的属性。

以下结构描述了 GET_TP_PROPERTIES 谓词使用的谓词控制块。

语法

  
struct get_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   tp_name[64];  
    unsigned char   lu_alias[8];  
    unsigned char   luw_id[26];  
    unsigned char   fqlu_name[17];  
    unsigned char   reserve3[10];  
    unsigned char   user_id[10];  
    unsigned char   prot_luw_id[26];  
    unsigned char   pwd[10];  
};   

成员

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

opext
提供的参数。 指定谓词操作扩展。 如果设置了AP_EXTD_VCB位,则表示 get_tp_properties 结构包含用于同步点支持的 prot_luw_id 成员。 否则,谓词控制块在 user_id 成员之后立即结束。

reserv2
一个保留字段。

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

secondary_rc
返回的参数。 指定在谓词完成时由 APPC 设置的次要返回代码。 有效的返回代码因发出的 APPC 谓词而异。 有关此谓词的有效错误代码,请参阅“返回代码”。

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

tp_name
返回的参数。 提供发出谓词的 TP 的 TP 名称。 该名称以 64 字节 EBCDIC 字符串的形式返回,右侧用 EBCDIC 空格填充。

lu_alias
返回的参数。 提供分配给本地 LU 的别名。 它将作为 8 字节 ASCII 字符串返回,在右侧填充 ASCII 空格。

luw_id
返回的参数。 为 TP 参与的事务提供未受保护的逻辑工作单元标识符。 一个事务中可以涉及多个 TP。 此标识符(代表发起事务的 TP 分配)允许组成事务的会话在逻辑上连接。

可以使用以下字段将 luw_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 空格。

fqlu_name
返回的参数。 提供本地 LU 的完全限定名称。 该名称以 17 字节 EBCDIC 字符串的形式返回,由 NETID、句点和 LU 名称组成。 名称在右侧填充 EBCDIC 空格。

reserve3
保留字段。

user_id
提供的参数。 指示分配请求中启动的 TP 提供的 user_id 。 该名称以 10 字节 EBCDIC 字符串的形式提供,在右侧用 EBCDIC 空格填充。

prot_luw_id
返回的参数。 如果会话是使用 synclevel 同步点分配的,则包含 TP 参与的事务的受保护逻辑工作单元标识符。

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

可以使用以下字段将 prot_luw_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。)

如果 prot_luw_id 长度小于 26 个字节,则会在右侧填充 EBCDIC 空格。

pwd
提供的参数。 包含分配 请求中发起 的 TP user_id的密码。 密码以 10 字节 EBCDIC 字符串的形式提供,右侧用 EBCDIC 空格填充。

返回代码

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 可以在任何状态下发出谓词。 没有状态更改。

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