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,请将此字段设置为八个十六进制零。 有关详细信息,请参阅 默认 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
特殊字符 $、#、@和 period (.)
如果 TP 名称长度小于 64 字节,请使用 EBCDIC 空格(0x40)将其放在右侧。
服务 TP 名称的 SNA 约定最多为四个字符。 第一个字符是0x00和0x3F之间的十六进制字节。
syncpoint_rqd
仅当 在 opext 参数中设置AP_EXTD_VCB位并且需要 Sync Point 服务时,此可选参数才适用。
- 如果需要同步点,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。