全部产品

错误码排查

更新时间:2020-08-28 14:23:25

SDK 集成相关

错误码 错误消息 错误说明 解决方案
DTX-000 dtx component scanner init error. SDK 启动失败,分布式事务不可用。
DTX-001 Bean[%s] can not have @DtxTransaction and @TccBusinessAction both. 同一个 bean 不能既有 @DtxTransaction 又有 @TccBusinessAction 注解。 修改代码,去掉 bean 的 @DtxTransaction 注解或者 @TccBusinessAction 注解 ,只保留其中一个。
DTX-002 the length of bizType[%s] can not be more than 30. @DtxTransaction 注解上的 BizType 长度不能超过 30 个字符。 将 BizType 长度控制在 30 字符以内。
DTX-003 init dtx configuration error. 初始化分布式事务配置项出现异常。
DTX-003 Class [%s] can not have @TccBusinessAction and @TwoPhaseBusinessAction both. 同一个 bean 不能既有 @TccBusinessAction 又有 @TwoPhaseBusinessAction 注解。 修改代码,去掉 bean 的 @TccBusinessAction 注解或者 @TwoPhaseBusinessAction 注解,只保留其中一个。
DTX-005 Unknown remoting service bean type, dtx will ignore this bean 未知的远程服务类型,将忽略此 bean。
DTX-006 tcc 2.0 prepare error, txId:[%s]. TCC 2.0 一阶段方法执行失败。 排查业务一阶段方法执行失败原因。
DTX-007 tcc 2.0 prepare control, idempotency failed, txId:[%s]. TCC 2.0 一阶段方法幂等控制执行失败。
DTX-008 tcc 2.0 prepare method @ShardingKey param type must be String, className:[%s]. @ShardingKey 标记参数必须是 String 类型。 修改 @ShardingKey 标记参数的类型为 String。
DTX-009 tcc 2.0 the java.sql.DataSource bean [%s] named by @TccBusinessAction.dataSourceBeanId() on class [%s] is not exist in spring applicationContext. @TccBusinessAction的dataSourceBeanId 属性指定的 DataSource bean 不存在。 检查 @TccBusinessAction的dataSourceBeanId 属性指定的 DataSource bean 是否存在。
DTX-010 tcc 2.0 the interface [%s] has no @TccBusinessAction method. TCC 2.0 的参与者接口无 @TccBusinessAction 注解。 检查确保 TCC 2.0 的参与者接口上有 @TccBusinessAction 注解。
DTX-011 tcc 2.0 action record is empty,txId:[%s],actionId:[%s]. TCC 2.0 的参与者记录为空,可能是参与者的一阶段方法未执行,或者一阶段方法未执行成功,此时执行二阶段提交出现此异常。 检查一阶段方法是否成功执行。
DTX-012 tcc 2.0 action commit failed,txId:[%s],actionId:[%s]. TCC 2.0 的参与者执行二阶段提交方法时出现异常。 排除二阶段提交方法执行异常的原因
DTX-013 tcc 2.0 commit/rolback failed, txId or actionId is empty. TCC 2.0 的参与者执行二阶段方法出现异常,原因是事务 ID 为空。
DTX-014 tcc 2.0 action rollback failed,txId:[%s],actionId:[%s]. TCC 2.0 的参与者执行二阶段回滚方法出现异常。 排除二阶段回滚方法执行异常的原因。
DTX-015 tcc anti-suspend, the ‘TccAntiSuspendDAO’ must not be null. 开启了 TCC 防悬挂,但是未配置 TccAntiSuspendDAO 配置 TccAntiSuspendDAO, 详见 开发指南 > TCC 防悬挂接入
DTX-016 tcc anti-suspend(prepare method) intercept, txId:[%s]. TCC 一阶段方法重复执行,防悬挂拦截器被触发。 检查 TCC 一阶段方法被重复执行的原因。
DTX-017 tcc anti-suspend(prepare method) , the DataSource can’t be null. 配置了防悬挂 TccAntiSuspendDAO,必须设置其 dataSources 属性。 配置 TccAntiSuspendDAO 详见 开发指南 > TCC 防悬挂接入
DTX-018 tcc anti-suspend, ITccAntiSuspendDAO didn’t init. TCC 防悬挂 TccAntiSuspendDAO 初始化未完成。
DTX-019 tcc anti-suspend failed, txId:[%s]. TCC 防悬挂控制出现未知异常。
DTX-020 @TwoPhaseBusinessAction method , has no serviceId. TCC 参与者接口的 @TwoPhaseBusinessAction 主键的 name 属性为空。 TCC 参与者接口的 @TwoPhaseBusinessAction 主键的 name 属性不得为空,且需要全局唯一。
DTX-021 unknown actionType:[%s]. TCC 参与者接口的 @TwoPhaseBusinessAction 主键的 actionType 属性配置了未知值。 TCC 参与者接口的 @TwoPhaseBusinessAction 主键的 actionType 属性只能是 localremote
DTX-022 report tcc branch failed, txId:[%s],actionId:[%s], serviceId:[%s]. 创建 TCC 参与者的分支事务记录出现异常 检查分布式事务 SDK 与事务云服务的网络连接是否正常、检查事务云服务返回创建分支事务记录事务的原因。
DTX-023 report tcc branch error, txId:[%s],actionId:[%s], serviceId:[%s]. 创建 TCC 参与者的分支事务记录出现未知异常。 检查分布式事务 SDK 与事务云服务的网络连接是否正常。
DTX-024 Dtx transaction timeout error, total time cost :%d (s), more than %d (s). 分布式事务执行超时,导致事务超时回滚。 检查事务执行超时原因,如需自定义事务超时时间,可以设置 @DtxTransaction 注解的 timeout 属性值(单位:秒)。
DTX-025 dtx transaction rollbacked error,txId[%s]. 分布式事务回滚出现异常 检查分布式事务 SDK 和事务云服务之间的网络连接是否正常。
DTX-026 dtx transaction start failed, invoke dtx-server failed, request:[%s],response:[%s] 分布式事务开启创建主事务记录,事务云服务返回创建失败。 检查事务云服务创建主事务记录失败原因。
DTX-027 dtx transaction commit failed, request:[%s],response:[%s]. 分布式事务提交,事务云服务返回提交失败。 检查事务云服务提交分布式事务失败原因。
DTX-028 dtx transaction commit error, request:[%s]. 分布式事务提交出现未知异常。 检查分布式事务 SDK 和事务云服务之间的网络连接是否正常。
DTX-029 dtx transaction rollback failed, request:[%s],response:[%s] 分布式事务回滚,事务云服务返回回滚失败。 检查事务云服务回滚分布式事务失败原因。
DTX-030 dtx transaction rollback error, request:[%s]. 分布式事务回滚出现未知异常。 检查分布式事务 SDK 和事务云服务之间的网络连接是否正常。
DTX-031 Dtx transaction timeout error, total time cost : %d (s), more than %d (s). 分布式事务执行超时,事务回滚。 检查事务执行超时原因,如需自定义事务超时时间,可以设置 @DtxTransaction 注解的 timeout 属性值(单位:秒)。

框架相关

错误码 错误消息 错误说明 解决方案
DTX-200 There must be only one framework, but found two, [%s] and [%s]. 运行框架只能有一个,但是系统识别到多个运行框架。
DTX-201 There are more than one remoting protocols on one bean, beanName: [%s] with type [%s]. 当前运行环境下,未找到任何远程通信协议。
DTX-202 There must be only one configuration, but found two, [%s] and [%s]. 配置项文件只能有一个,但是系统识别到至少 2 个配置项文件。 确保配置项文件只有一个。
DTX-203 There must be one IConfiguration implement. 无任何配置项文件。 确保配置项文件存在。
DTX-204 No framework found. 未识别到任何运行框架。 确保运行框架是分布式事务能支持的。

SDK 与事务云服务通信相关

错误码 错误消息 错误说明 解决方案
DTX-301 There must be one address registry, but found none. 未找到事务云服务的地址。 提交工单,检查事务云服务是否健康运行。
DTX-302 init dtx-servers’ tcp long-conections failed. 分布式事务 SDK 与事务云服务建立长连接失败。 提交工单,检查事务云服务是否健康运行。
DTX-303 unavailable dtx-server connections,serverIp:[%s] 分布式事务 SDK 无法建立到 serverIp 的 TCP 长连接。 提交工单,检查事务云服务是否健康运行。
DTX-304 rpc (to dtx-server) invoke error. 向事务云服务发送消息出现异常。 提交工单,检查事务云服务是否健康运行。

SQL 解析相关

错误码 错误消息 错误说明 解决方案
DTX-400 unknown dbType:[%s] 不支持的数据库类型 目前支持 Oceanbase、MySQL、Oracle,其他数据库暂不支持。
DTX-402 parser sql error,sql:[%s] 解析 SQL 语句出现异常 检查分布式事务是否支持 SQL 语法。
DTX-403 value type of param [%s]: [%s] is not support. 不支持的 SQL 语句表达式 检查分布式事务是否支持 SQL 语法。
DTX-403 unknown dbType for in select subquery. 嵌套子查询不支持 嵌套子查询不支持,请修改 SQL 语法。
DTX-404 insert’s duplicateKeyUpdateClauses is not expression. insert on duplicate key update 语句语法有错误 检查 SQL 语句语法是符合标准 SQL 语法。
DTX-405 the insert sql’s columns or valurClauses is null. insert 语句语法有错误 检查 SQL 语句语法是符合标准 SQL 语法。
DTX-406 aggregate method [%s] is not support, only support aggregate methods: SUM, COUNT, AVG, MIN, MAX. 集合函数目前只支持 SUM、COUNT、AVG、MIN、MAX,其它集合函数不支持 集合函数目前只支持 SUM、COUNT、AVG、MIN、MAX,修改 SQL 语句。
DTX-450 There must be primaryKey in table[%s] of db[%s]. 业务表必须有主键 给所有业务表添加主键。

数据源相关(FMT 模式下)

错误码 错误消息 错误说明 解决方案
DTX-500 transaction [%s]:[%s] on db [%s] fulsh branchInfo to db failed. 保存 undo logdtx\_branch\_info 表失败 检查业务数据库是否正常。
DTX-501 transaction [%s]:[%s] on db [%s] report branchInfo to dtx-server failed. 向事务云服务发送创建分支事务记录消息失败 检查分布式事务 SDK 与事务云服务网络连接是否正常、检查事务云服务是否正常。
DTX-502 transaction [%s]:[%s] on db [%s] commit error 业务本地事务提交失败 检查业务数据库是否正常。
DTX-503 transaction [%s]:[%s] on db [%s] rollback error 业务本地事务回滚失败 检查业务数据库是否正常。
DTX-504 sql parser result is empty, sql:[%s] SQL 语句解析结果为空 检查 SQL 语法是否为分布式事务支持。
DTX-505 ‘INSERT INGORE’ and ‘INSERT ON DUPLICATE UPDATE’ statement must contain primaryKey colmun(s), sql:[%s] INSERT INGOREINSERT ON DUPLICATE UPDATE 中不得使用自增主键句式 INSERT INGOREINSERT ON DUPLICATE UPDATE 不支持使用自增主键,请在 SQL 语句的列与值中添加主键字段。
DTX-506 ‘UPDATE’ and ‘DELETE’ statement must have where-statement, sql:[%s] update 和 delete 语句编写要 where 条件 修改 SQL 语句,添加 where 条件。
DTX-507 ‘UPDATE’ statement can not update primaryKey colmun(s), sql:[%s] update 语句不得更新主键值 修改 SQL 语句。
DTX-508 nknown sqlType, sql:[%s] 不支持的数据库类型 目前支持 Oceanbase、MySQL、Oracle,其他数据库暂不支持。
DTX-509 In READ_COMMITTED mode, complex query is not supported, you can use READ_UNCOMMITTED mode, sql:[%s] 读已提交模式不支持复杂查询语句 修改 SQL 语句为简单查询语句,或者使用读未提交模式。
DTX-510 Insert-select statement is not supported, sql:[%s] Insert-select 语法不支持 修改 SQL 语句。
DTX-511 branchLogItems is empty, nothing to undo, dbId:[%s] 业务库无 undo log,undo 操作返回
DTX-512 check dirty failed, branchLogItem:[%s]. 脏写校验失败,数据回滚异常 人工介入订正数据。
DTX-513 insert branchInfo error, branchInfo:[%s] 保存 undo log 至业务数据库出现异常 检查业务数据库是否正常。
DTX-514 lock table row failed, data may be locked by another transaction. db:[%s],tableName:[%s] ,primaryKey:[%s] 添加行锁失败,数据行锁正在被其他事务占用 检查数据行锁占用事务未结束原因。
DTX-515 insert rowlock failed, txId = %s, had tried count: %d 保存行锁数据至业务数据库失败 检查业务数据库是否正常、检查数据行锁是否被其他事务占用。
DTX-516 transaction:[%s] lock table row failed;row:[%s:%s] was locked by transaction:[%s]. 行锁添加失败,行锁被其他事务占用 检查数据行锁占用事务未结束原因。
DTX-517 insert statement primary-key’s value must be simple value, sql:%s. insert 语句中的主键字段必须是简单数据类型:字符串或数字 修改主键数据类型。
DTX-518 Oracle insert statement primary-key’s value can not be Sequence.nextVal/Sequence.currVal, sql:%s. Oracle 数据库 insert 语句,主键不得使用 sequence 修改 insert 语句语法。
DTX-519 Insert statement primary-key’s value can not be Expression, sql:%s. insert 语句主键值不得事表达式 修改 insert 语句语法。
DTX-520 Unsupport dbType:%s. 不支持的数据库类型 目前支持 Oceanbase、MySQL、Oracle,其他数据库暂不支持。
DTX-521 unsupport sub query in where condition. 不支持 where 条件中的子查询 修改 SQL 语句语法。
DTX-522 join select sql can not get one tableName. join 语句获取多个表名,会产生歧义,不支持 join 语句 修改 SQL 语句语法或者改成读未提交模式。
DTX-523 select from more than on tableName or sub select statement, can not get a tableName. join 语句获取多个表名,会产生歧义,不支持 join 语句 修改 SQL 语句语法,或者改成读未提交模式。
DTX-524 select from nest sub select statement, can not get a tableName. 不支持嵌套查询 修改 SQL 语句语法,或者改成读未提交模式。
DTX-525 select sql has no tableName. 查询语句无表名称 修改 SQL 语句语法。
DTX-526 unknown parameter, %s:%s. 不支持的数据类型 修改 SQL 语句语法。
DTX-527 executeBatch error, statement:%s. executeBatch 执行出现异常 根据异常类型判断出错原因。
DTX-528 execute Statement, but sql is empty. SQL 语句为空
DTX-529 execute statement error, statement:%s. 执行 SQL 语句出现异常 根据异常类型判断出错原因。
DTX-530 Statements is empty, no sql need execute. SQL 语句为空
DTX-531 there is not sql to executed. SQL 语句为空
DTX-532 while getAutoCommit() is true can not invoke executeBatch. executeBatch 方法必须在数据库事务内执行 请先开启数据库事务。
DTX-533 AddBatch count is not equal to parameters row count. addBatch 参数个数不匹配 检查业务代码,确保正确使用了 addBatch
DTX-534 All parameters of batch prepareStatement must have addBatch() follow. executeBatch 的参数设置之后必须调用 addBatch 方法 检查业务代码,确保正确使用了 addBatch
DTX-535 Invoking executeBatch() method need all sql statements are addBatch(), but sql[%s] is not. executeBatch 用法不正确 检查业务代码,确保正确使用了 addBatch
DTX-536 Invoking executeBatch() method need all sql statements are addBatch(sql),but sql[%s] is not. executeBatch 用法不正确 检查业务代码,确保正确使用了 addBatch
DTX-537 Invoking executeQuery/executeUpdate/execute method need all sql statements are non-addBatch sql, but sql[%s] is addBatch. addBatch 的 SQL 调用了 executeQuery/executeUpdate/execute 方法执行 检查业务代码,确保正确使用了 JDBC。
DTX-538 PreparedStatement with addBatch sql cann’t use limit-statement, sql:[%s]. PreparedStatementaddBatch 用法,SQL 语句中不支持带 limit 分页句式 修改业务代码及 SQL 语句。
DTX-539 parameter count ambiguous, where-statement expect the count more than %d , but parameter count is %d. PreparedStatement 的 SQL 语句的参数个数与实际参数个数不匹配 检查代码,确保参数个数与 SQL 语句中参数个数相等。
DTX-540 parameter index ambiguous, where-statement expect the index is %d, but parameter count is %d. PreparedStatement 的 SQL 语句的参数个数与实际参数个数不匹配 检查代码,确保参数个数与 SQL 语句中参数个数相等。
DTX-541 parameter data ambiguous, where-statement expect the parameter row count is %d, but actual is %s. PreparedStatement 的批量 SQL 语句的参数行数与实际参数行数不匹配 检查代码,确保参数个数与 SQL 语句中参数个数相等。
DTX-542 query log error, querySql:[%s],prameters:[%s],isPrepare:%s.” 查询 undo log 出现异常 检验业务数据库是否可用。
DTX-543 check dirty data error,tableName:[%s],oldRows:[%s],newRows:[%s]. 脏写校验失败,业务数据出现脏写 人工介入订正数据。
DTX-544 auto-generate primary-key must be only one column,sql: [%s]. 自增主键不能是复合主键 修改主键为单列主键。
DTX-545 addBatch() must include primary-key(s) in sql, auto-generate primary-key don’t support,sql: [%s]. addBatch 的 SQL 语句中必须包含主键,不支持自增主键 修改 SQL 语句。
DTX-546 insert without primary-key(s), do not support batch insert ,sql: %s. 批量插入时,SQL 语句中必须有主键 修改 SQL 语句,添加主键列至 SQL 语句中 。
DTX-547 preparedstatement addBatch, insert sql’s values must be single,the sql:[%s]. preparedstatementaddBatch 用法时,insert 语句不支持批量 修改 SQL 语句。
DTX-548 parameter index ambiguous, where-statement expect the index is %d, but parameter count is %d. SQL 语句需要的参数个数与实际的参数个数不匹配 检查业务代码和 SQL 语句的参数是否匹配。
DTX-550 parameter data ambiguous, where-statement expect the parameter row count is %d, but actual is %s. SQL 语句需要的参数个数与实际的参数个数不匹配 检查业务代码和 SQL 语句的参数是否匹配。
DTX-551 parameter index ambiguous, where-statement expect the index is %d, but parameter count is %d. SQL 语句需要的参数个数与实际的参数个数不匹配 检查业务代码和 SQL 语句的参数是否匹配。
DTX-552 parameter data ambiguous, where-statement expect the parameter row count is %d, but actual is %s. SQL 语句需要的参数个数与实际的参数行数不匹配 检查业务代码和 SQL 语句的参数是否匹配 。
DTX-553 the type of primary key must be ‘String’ or ‘Number’. 主键字段的类型必须是字符串或者数字 修改主键、或者修改主键数据类型。
DTX-554 can not get the primarykey of insert statement:[%s],parameters:[%s]. 自增主键的 insert 语句,无法获取 insert 数据之后的主键值 修改 insert 语句添加主键。
DTX-556 the columns count of sql’s values is not equal to the columns count of the table, table’s column count:[%d],clomuns values:[%d] SQL 语句中的字段列与业务表的字段列个数不匹配 检查 SQL 语句是否正确;如果数据库表结构变更过,请重启机器刷新分布式事务缓存 。
DTX-557 check undo datas result is true, undo do nothing, branchLogItem:[%s]. undo log 数据为空,undo 操作返回
DTX-558 unknown sqlType, sqlType: %s, branchLogItem:[%s]. 不支持的 SQL 语句类型 参考分布式事务开发指南,修改 SQL 语句为分布式事务支持的 SQL 类型。
DTX-559 check dirty datas failed, the data is dirty, tableName:[%s],postRows:[%s],dbRows:[%s],branchLogItem:[%s]. 数据脏写校验失败,业务数据出现脏写 人工介入订正数据。
DTX-560 insert branch info into oracle db failed, txId:%s, actionId: %s. 向 Oracle 数据库保存 undo log 出现异常 检查业务数据库是否正常运行。
DTX-561 connection must setAutoCommit(false), conn: %s, rowLocks: %s. 保存行锁记录时,未开启数据库事务。
DTX-562 preparedStatement only support single sql,but sql[%s] has more one sql. preparedStatement 中不支持多个 SQL 语句 修改 SQL 语句语法。
DTX-563 transaction [%s] on db [%s] executeQuery(%s) error. executeQuery 方法执行出现未知异常 根据抛出的异常类型找出异常原因。
DTX-564 transaction [%s] on db [%s] executeUpdate([%s]) error. executeUpdate 方法执行出现未知异常 根据抛出的异常类型找出异常原因。
DTX-565 transaction [%s] on db [%s] executeUpdate([%s], int) error. executeUpdat 方法执行出现未知异常 根据抛出的异常类型找出异常原因。
DTX-566 transaction [%s] on db [%s] executeUpdate([%s], int[]) error. executeUpdate 方法执行出现未知异常 根据抛出的异常类型找出异常原因。
DTX-567 transaction [%s] on db [%s] executeUpdate([%s], String[]) error. executeUpdate 方法执行出现未知异常 根据抛出的异常类型找出异常原因。
DTX-568 transaction [%s] on db [%s] execute([%s]) error. execute 方法执行出现未知异常 根据抛出的异常类型找出异常原因。
DTX-569 transaction [%s] on db [%s] execute([%s], int) error. execute 方法执行出现未知异常 根据抛出的异常类型找出异常原因。
DTX-570 transaction [%s] on db [%s] execute([%s], int[]) error. execute 方法执行出现未知异常 根据抛出的异常类型找出异常原因。
DTX-571 transaction [%s] on db [%s] execute([%s],String[]) error. execute 方法执行出现未知异常 根据抛出的异常类型找出异常原因。
DTX-572 addBatch(String) is not allowed while getAutoCommit() is true. addBatch(String) 方法必须在开启数据库事务之后使用 在使用 addBatch(String) 方法前先开启数据库事务。
DTX-573 executeBatch() is not allowed while getAutoCommit() is true. executeBatch 方法必须在开启数据库事务之后使用 在使用 executeBatch 方法前先开启数据库事务。
DTX-574 don’t support closeOnCompletion() ; need explicit invoke close() method to close the statement. closeOnCompletion 方法不支持 手动调用 close 方法关闭 Statement。
DTX-576 WrappedDtxDataSource.getUniqueDbId() is empty. WrappedDtxDataSource 的 uniqueDbId 属性不得为空 设置 WrappedDtxDataSource 的 uniqueDbId 属性,需要保证全局唯一。
DTX-577 WrappedDtxDataSource.targetDataSource is null. WrappedDtxDataSource 的 targetDataSource 属性不得为空 设置 `WrappedDtxDataSource 的 targetDataSource 属性。
DTX-578 WrappedDtxDataSource.targetDataSource can not be type of IDtxDataSource. WrappedDtxDataSource 的 targetDataSource 属性所指的 DataSource 对象不能是 IDtxDataSource 类型 修改 WrappedDtxDataSource 的 targetDataSource 属性为非 IDtxDataSource 类型。
DTX-579 DruidDtxDataSource.jdbcUrl is empty. DruidDtxDataSource 的 dbType 属性不得为空 设置 DruidDtxDataSource 的 dbType 属性。
DTX-580 DruidDtxDataSource.userName is empty. DruidDtxDataSource的 userName 属性不得为空 设置 DruidDtxDataSource 的 userName 属性。
DTX-581 DruidDtxDataSource.password is empty. DruidDtxDataSource 的 password 属性不得为空 设置 DruidDtxDataSource 的 password 属性。