TP_ENDED

TP_ENDED谓词由调用和调用的事务程序 (TP) 发出,并通知 APPC TP 即将结束。

对于 Microsoft® Windows® 版本 3.x 系统,建议使用 WinAsyncAPPC 函数,而不要使用此调用的阻塞版。

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

语法

  
struct tp_ended {  
    unsigned short  opcode;  
    unsigned char   opext;  
    unsigned char   reserv2;  
    unsigned short  primary_rc;  
    unsigned long   secondary_rc;  
    unsigned char   tp_id[8];  
    unsigned char   type;  
};   

成员

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

opext
提供的参数。 指定谓词操作扩展。 TP_ENDED谓词不使用此字段。

reserv2
一个保留字段。

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

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

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

type
提供的参数。 指定要执行的终止类型。 以下是允许的值:

  • AP_HARD指示 TP 的所有活动谓词都已终止;会话 (会话) () 结束。 本地 TP 和合作伙伴 TP 都可以接收映射对话 (AP_DEALLOC_ABEND 会话失败返回代码,) 基本会话AP_DEALLOC_ABEND_PROG。

  • AP_SOFT指示 TP 等待所有活动谓词完成;会话使用的会话保持活动状态。

返回代码

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

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

AP_BAD_TP_ID

辅助返回代码;APPC 未将 tp_id 识别为分配的 TP 标识符。

AP_BAD_TYPE

辅助返回代码;APPC 无法识别指定的 类型 值。

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_THREAD_BLOCKING
    主要返回代码;调用线程已在某个阻塞调用中。

    AP_UNEXPECTED_DOS_ERROR
    主要返回代码;操作系统在处理来自本地 TP 的 APPC 调用时向 APPC 返回了错误。 已通过 secondary_rc 返回了操作系统返回代码。 此返回代码是以 Intel 字节交换顺序显示的。 如果问题持续出现,请咨询系统管理员。

备注

为了响应 TP_ENDED,APPC 释放 TP 使用的资源。 执行此谓词后,TP 标识符不再有效;TP 无法再发出 APPC 对话谓词。

当 TP 发出此谓词时,对话可以处于任何状态。

如果会话处于 SEND 状态, TP_ENDED 将执行 DEALLOCATEMC_DEALLOCATE 的功能, dealloc_type 设置为 AP_FLUSH。

如果会话处于 RESET 或 SEND 以外的状态, TP_ENDED 将执行 DEALLOCATEMC_DEALLOCATE 的功能, dealloc_type 将映射对话) 设置为AP_ABEND (,或基本聊天) AP_ABEND_PROG (。

AP_OK) 成功执行 (primary_rc 后,不存在 APPC 状态。