百科 / 错误代码 / Class 40 事务回滚
40003 statement_completion_unknown
语句完成状态未知
ERROR 仅定义 参考 未实测
- 条件名
statement_completion_unknown- 宏名称
ERRCODE_T_R_STATEMENT_COMPLETION_UNKNOWN- 启用版本
- 7.4
- 状态
- 活跃
版本覆盖
速览
40003 描述语句完成状态不确定,通常是连接或协议边界上的结果核对问题。本批固定核心扫描没有提供安全的 SQL-only 自然触发方式。客户端超时或伪造 RAISE 都不能证明服务器完成状态不确定;重试前先核对持久化业务状态。
含义
40003 表示语句完成状态未知:连接或传输失败后,客户端无法判断服务器是否已经完成语句。它是结果可知性的边界,不能证明语句失败,也不能指示盲目回滚。
诊断
用请求标识或幂等键关联服务器日志、后端活动、提交记录和持久化业务状态。套接字异常通常没有服务器 SQLSTATE,固定扫描也没有安全的核心纯 SQL 40003 触发器。客户端超时、断链,以及在新会话上执行 ROLLBACK 都是独立事实,不能证明原语句已撤销。
处理
重试前先核对:在新的健康会话上查询权威持久化状态;只有同时匹配原请求和业务结果后,幂等键才能表示“已处理”;再由应用判断是否可重复执行。不要声称通用重试或回滚能解决未知完成状态,也不要用 RAISE 或本地超时伪造 40003。
可复现案例
在一次性实例上执行过的场景。
statement_completion_boundary PG 10 / 18
前置条件
- A runner-owned disposable target is provisioned.
触发
No connection-loss or uncertain-completion success claim is fabricated.
处置
When completion is uncertain, reconcile durable business state before retrying; this page does not claim a SQL-only reproduction.
清理
Drop the case schema with an owner connection.
版本
上面的锁定事实表记录项目快照范围内的目录存在情况。固定源码证据只覆盖下面声明的路径;不能仅从定义推导精确行为引入版本或更广的运行覆盖。
来源
证据
断言
每条断言都写明了是怎么核实的,以及它不覆盖什么。这一层是核验时留下的原始英文记录,照原样呈现,未经翻译。
-
40003 is the statement_completion_unknown condition in Class 40.
-
No distinct safe natural core runtime case for 40003 was selected from the fixed call scan.
同类错误代码
Class 40 事务回滚 下的其他成员。