GET_STATE谓词返回特定会话的状态。
以下结构描述了 GET_STATE 谓词使用的谓词控制块(VCB)。
语法
struct get_state {
unsigned short opcode;
unsigned char opext;
unsigned char reserv2;
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char tp_id[8];
unsigned long conv_id;
unsigned char conv_state;
};
成员
opcode
提供的参数。 指定谓词作代码,AP_GET_STATE。
opext
GET_STATE谓词未使用此字段。
reserv2
保留字段。
primary_rc
返回的参数。 指定 APPC 在谓词完成时设置的主要返回代码。 有效的返回代码因发布的 APPC 谓词而异。 有关此谓词的有效错误代码,请参阅返回代码。
secondary_rc
返回的参数。 指定 APPC 在谓词完成时设置的辅助返回代码。 有效的返回代码因发布的 APPC 谓词而异。 有关此谓词的有效错误代码,请参阅返回代码。
tp_id
提供的参数。 标识本地事务程序(TP)。 此参数的值由调用 TP 中的 TP_STARTED 或调用的 TP 中的 RECEIVE_ALLOCATE 返回。
conv_id
提供的参数。 提供此 TP 正在查询的会话的标识符。 此参数的值由调用 TP 中的 MC_ALLOCATE 或 ALLOCATE 或调用 TP 中的 RECEIVE_ALLOCATE 返回。
conv_state
返回的参数。 指示会话的状态。
conv_state参数可以是以下值之一:
AP_RESET_STATE
会话处于 RESET 状态。
AP_SEND_STATE
会话处于 SEND 状态。
AP_RECEIVE_STATE
会话处于 RECEIVE 状态。
AP_CONFIRM_STATE
会话处于 CONFIRM 状态。
AP_CONFIRM_SEND_STATE
会话处于CONFIRM_SEND状态。
AP_CONFIRM_DEALL_STATE
会话处于CONFIRM_DEALLOCATE状态。
AP_PEND_POST_STATE
会话具有 挂起的 POST 谓词。
AP_PEND_DEALL_STATE
会话有一个 DEALLOCATE 谓词挂起。
AP_END_CONV_STATE
会话处于END_CONVERSATION状态。
AP_SEND_PENDING_STATE
会话处于SEND_PENDING状态。
返回代码
AP_OK
主要返回代码;已成功执行谓词。
AP_PARAMETER_CHECK
主要返回代码;由于参数错误,谓词未执行。
AP_BAD_CONV_ID
辅助返回代码; conv_id 的值与 APPC 分配的会话标识符不匹配。
AP_BAD_TP_ID
辅助返回代码; tp_id 的值与 APPC 分配的 TP 标识符不匹配。
AP_COMM_SUBSYSTEM_ABENDED
主要返回代码;指示以下条件之一:
此会话使用的节点遇到 ABEND。
TP 与 PU 2.1 节点之间的连接已中断(LAN 错误)。
TP 计算机上的 SnaBase 遇到 ABEND。
系统管理员应检查错误日志以确定 ABEND 的原因。
AP_INVALID_VERB_SEGMENT
主要返回代码;VCB 超出了数据段的末尾。AP_STACK_TOO_SMALL
主要返回代码;应用程序的堆栈大小太小,无法执行谓词。 增加应用程序的堆栈大小。AP_CONV_BUSY
主要返回代码;在任何对话中,一次只能有一个未完成的对话谓词。 如果本地 TP 有多个线程,并且多个线程使用相同的 conv_id发出 APPC 调用,则可能会出现这种情况。AP_UNEXPECTED_DOS_ERROR
主要返回代码;作系统在处理来自本地 TP 的 APPC 调用时,已将错误返回到 APPC。 作系统返回代码通过 secondary_rc返回。 它以 Intel 字节交换的顺序显示。 如果问题仍然存在,请咨询系统管理员。
注解
当 TP 发出此谓词时,对话可以处于任何状态。
没有状态更改。