TP_STARTED
TP_STARTED 谓词由调用事务程序 (TP) 发出,并通知 APPC,TP 正在启动。
对于 Microsoft® Windows® 版本 3.x 系统,建议使用 WinAsyncAPPC 函数,而不要使用此调用的阻塞版。
以下结构描述了 TP_STARTED 谓词使用的谓词控制块。
语法
struct tp_started {
unsigned short opcode;
unsigned char opext;
unsigned char reserv2;
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char lu_alias[8];
unsigned char tp_id[8];
unsigned char tp_name[64];
unsigned char syncpoint_rqd;
};
成员
opcode
提供的参数。 指定谓词操作代码 AP_TP_STARTED。
opext
提供的参数。 指定谓词操作扩展。 如果设置了 AP_EXTD_VCB 位,则表明 tp_started 结构包括用于提供同步点支持的 syncpoint_rqd 成员 。 否则,谓词控制块将在 tp_name 成员之后立即结束。
reserv2
一个保留字段。
primary_rc
返回的参数。 指定在谓词完成时由 APPC 设置的主要返回代码。 有效的返回代码因发出的 APPC 谓词而异。 有关此谓词的有效错误代码,请参阅“返回代码”。
secondary_rc
返回的参数。 指定在谓词完成时由 APPC 设置的次要返回代码。 有效的返回代码因发出的 APPC 谓词而异。 有关此谓词的有效错误代码,请参阅“返回代码”。
lu_alias
提供的参数。 指定可供本地 TP 知道本地 LU 的别名。
该名称必须与配置期间建立的 LU 别名相匹配。 APPC 根据当前 Host Integration Server 配置文件检查 LU 别名。 但是,由于 Host Integration Server 所用客户端/服务器体系结构的原因,只有在执行 ALLOCATE 或 MC_ALLOCATE 之后,才会验证此参数。
此参数是一个 8 字节 ASCII 字符串。 它可以包含以下 ASCII 字符:
大写字母
0 到 9 的数字
空格
特殊字符 $、#、% 和 @
此字符串的第一个字符不能是空格。
如果此参数值的长度小于 8 个字节,请在此参数值右侧填充 ASCII 空格 (0x20)。
若要使用默认 LU 池中的某个 LU,请将此字段设置为 8 个十六进制零。 有关详细信息,请参阅默认 LU。
tp_id
返回的参数。 标识新建立的 TP。
tp_name
提供的参数。 指定本地 TP 的名称。
在 APPC 的 Host Integration Server 实现下,当此参数由 TP_STARTED 发出时,将忽略此参数。 但是,如果程序在 APPC 的 IBM ES for OS/2 版本 1.0 实现下运行,则此参数是必需的。
此参数是一个 64 字节 EBCDIC 字符串,区分大小写。 tp_name 参数可以包含以下 EDCDIC 字符:
大写和小写字母
0 到 9 的数字
特殊字符 $、#、@ 和句点 (.)
如果 TP 名称的长度小于 64 个字节,请在该 TP 名称右侧填充 EBCDIC 空格 (0x40)。
服务 TP 名称的 SNA 约定为最多 4 个字符。 第一个字符是介于 0x00 和 0x3F 之间的十六进制字节。
syncpoint_rqd
仅当在 opext 参数中设置了 AP_EXTD_VCB 位并且需要同步点服务时,此可选参数才适用。
- 如果需要同步点,则此参数的值为 AP_YES。
- 如果不需要同步点,则此参数的值为 AP_NO。
返回代码
AP_OK
主要返回代码;谓词已成功执行。
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 的另一个调用。
AP_THREAD_BLOCKING
主要返回代码;调用线程已在某个阻塞调用中。
AP_UNEXPECTED_DOS_ERROR
主要返回代码;操作系统在处理来自本地 TP 的 APPC 调用时向 APPC 返回了错误。 已通过 secondary_rc 返回了操作系统返回代码。 此返回代码是以 Intel 字节交换顺序显示的。 如果问题持续出现,请咨询系统管理员。
备注
在对 TP_STARTED 的响应中,APPC 为调用 TP 生成了 TP 标识符。 此标识符是该调用 TP 发出的后续 APPC 谓词的必需参数。
这必须是该调用 TP 发出的第一个 APPC 谓词。 因此,任何以前的 APPC 状态都不存在。
如果谓词成功执行(primary_rc 为 AP_OK),则状态将更改为 RESET。