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 使用的客户端/服务器体系结构,在执行 ALLOCATEMC_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。

本节中