Error codes
SDK integration
Error code | Error message | Description | Solution |
DTX-000 | dtx component scanner init error. | The SDK failed to start. Distributed transactions are unavailable. | - |
DTX-001 | Bean[%s] can not have @DtxTransaction and @TccBusinessAction both. | A single bean cannot have both the | Remove either the |
DTX-002 | the length of bizType[%s] can not be more than 30. | The | Keep the |
DTX-003 | init dtx configuration error. | Failed to initialize the distributed transaction configuration. | - |
DTX-004 | Class [%s] can not have @TccBusinessAction and @TwoPhaseBusinessAction both. | A single bean cannot have both the | Remove either the |
DTX-005 | Unknown remoting service bean type, dtx will ignore this bean | The remoting service bean type is unrecognized. The system will ignore this bean. | - |
DTX-006 | TCC 2.0 prepare error, txId:[%s]. | The TCC 2.0 prepare method failed. | Investigate why the business prepare method failed. |
DTX-007 | TCC 2.0 prepare control, idempotency failed, txId:[%s]. | The idempotency control for the TCC 2.0 prepare method failed. | - |
DTX-008 | TCC 2.0 prepare method @ShardingKey param type must be String, className:[%s]. | The parameter marked with | Change the type of the parameter marked with |
DTX-009 | TCC 2.0 the java.sql.DataSource bean [%s] specified by @TccBusinessAction.dataSourceBeanId() on class [%s] does not exist in the Spring application context. | The | Verify that the |
DTX-010 | TCC 2.0 the interface [%s] has no @TccBusinessAction method. | The TCC 2.0 participant interface is missing the | Ensure that the TCC 2.0 participant interface has the |
DTX-011 | TCC 2.0 action record is empty, txId:[%s], actionId:[%s]. | The TCC 2.0 participant record is empty. This can happen if the participant's prepare method did not run or failed to complete before the commit phase began. | Check if the prepare method was executed successfully. |
DTX-012 | TCC 2.0 action commit failed, txId:[%s], actionId:[%s]. | The TCC 2.0 participant failed to execute the commit method. | Troubleshoot the cause of the commit method failure. |
DTX-013 | TCC 2.0 commit/rollback failed, txId or actionId is empty. | The TCC 2.0 participant failed to execute the commit or rollback method because the transaction ID is empty. | - |
DTX-014 | TCC 2.0 action rollback failed, txId:[%s], actionId:[%s]. | The TCC 2.0 participant failed to execute the rollback method. | Troubleshoot the cause of the rollback method failure. |
DTX-015 | TCC anti-suspend: the ‘TccAntiSuspendDAO’ must not be null. | TCC anti-suspend is enabled, but the | Configure the |
DTX-016 | TCC anti-suspend (prepare method) intercept, txId:[%s]. | The TCC prepare method was executed repeatedly, triggering the anti-suspend interceptor. | Investigate why the TCC prepare method was executed repeatedly. |
DTX-017 | TCC anti-suspend (prepare method): the DataSource cannot be null. | When the anti-suspend | For details on configuring |
DTX-018 | TCC anti-suspend: ITccAntiSuspendDAO did not initialize. | Initialization of the TCC anti-suspend | - |
DTX-019 | TCC anti-suspend failed, txId:[%s]. | An unknown error occurred in the TCC anti-suspend control mechanism. | - |
DTX-020 | @TwoPhaseBusinessAction method , has no serviceId. | The | The |
DTX-021 | unknown actionType:[%s]. | The | The |
DTX-022 | report TCC branch failed, txId:[%s], actionId:[%s], serviceId:[%s]. | An error occurred while creating the branch transaction record for a TCC participant. | Verify network connectivity between the distributed transaction SDK and the transaction service. Then, check the transaction service logs to determine why creating the branch transaction record failed. |
DTX-023 | report TCC branch error, txId:[%s], actionId:[%s], serviceId:[%s]. | An unknown error occurred while creating the branch transaction record for a TCC participant. | Verify the network connectivity between the distributed transaction SDK and the transaction service. |
DTX-024 | Dtx transaction timeout error, total time cost :%d (s), more than %d (s). | The distributed transaction timed out and was rolled back. | Investigate the cause of the transaction timeout. To customize the timeout period, set the |
DTX-025 | distributed transaction rollback error, txId:[%s]. | The distributed transaction failed to roll back. | Verify the network connectivity between the distributed transaction SDK and the transaction service. |
DTX-026 | dtx transaction start failed, invoke dtx-server failed, request:[%s],response:[%s] | When starting a distributed transaction, the transaction service failed to create the main transaction record. | Check the transaction service logs to determine why creating the main transaction record failed. |
DTX-027 | dtx transaction commit failed, request:[%s],response:[%s]. | When committing the distributed transaction, the transaction service reported a commit failure. | Check the transaction service logs to determine why the transaction failed to commit. |
DTX-028 | dtx transaction commit error, request:[%s]. | An unknown error occurred while committing the distributed transaction. | Verify the network connectivity between the distributed transaction SDK and the transaction service. |
DTX-029 | dtx transaction rollback failed, request:[%s],response:[%s] | When rolling back the distributed transaction, the transaction service reported a rollback failure. | Check the transaction service logs to determine why the transaction failed to roll back. |
DTX-030 | dtx transaction rollback error, request:[%s]. | An unknown error occurred while rolling back the distributed transaction. | Verify the network connectivity between the distributed transaction SDK and the transaction service. |
DTX-031 | Dtx transaction timeout error, total time cost : %d (s), more than %d (s). | The distributed transaction timed out and was rolled back. | Investigate the cause of the transaction timeout. To customize the timeout period, set the |
Framework
Error code | Error message | Description | Solution |
DTX-200 | There must be only one framework, but found two, [%s] and [%s]. | DTX supports only one framework, but multiple were found. | - |
DTX-201 | There is more than one remoting protocol on one bean, beanName: [%s] with type [%s]. | No remoting protocol was found in the current runtime environment. | - |
DTX-202 | There must be only one configuration, but found two, [%s] and [%s]. | DTX requires a single configuration, but multiple were detected. | Ensure that only one configuration exists. |
DTX-203 | There must be one IConfiguration implementation. | A required configuration is missing. | Ensure that a configuration exists. |
DTX-204 | No framework found. | A required framework is missing. | Configure a framework that is supported by DTX. |
SDK and transactional cloud service communication
Error code | Error message | Description | Solution |
DTX-301 | There must be one address registry, but found none. | The address of the dtx-server could not be found. | Verify that the dtx-server is running and healthy. |
DTX-302 | Failed to initialize TCP persistent connections to the dtx-servers. | The DTX SDK failed to establish a persistent connection to the dtx-server. | Verify that the dtx-server is running and healthy. |
DTX-303 | Unavailable dtx-server connections for serverIp: [%s] | The DTX SDK could not establish a TCP persistent connection to | Verify that the dtx-server is running and healthy. |
DTX-304 | RPC call to the dtx-server failed. | An error occurred during an RPC call to the dtx-server. | Verify that the dtx-server is running and healthy. |
SQL parsing
Error code | Error message | Description | Solution |
DTX-400 | unknown dbType:[%s] | Unsupported database type. | Use a supported database type. Currently, only OceanBase, MySQL, and Oracle are supported. |
DTX-402 | parser sql error,sql:[%s] | Failed to parse the SQL statement. | Verify that the SQL syntax is supported by distributed transactions. |
DTX-403 | value type of param [%s]: [%s] is not support. | Unsupported SQL expression. | Verify that the SQL syntax is supported by distributed transactions. |
DTX-403 | unknown dbType for in select subquery. | Nested subqueries are not supported. | Rewrite the SQL statement to avoid using a nested subquery. |
DTX-404 | insert’s duplicateKeyUpdateClauses is not expression. | Syntax error in the | Verify that the statement conforms to standard SQL syntax. |
DTX-405 | the insert sql’s columns or valurClauses is null. | Syntax error in the | Verify that the statement conforms to standard SQL syntax. |
DTX-406 | aggregate method [%s] is not support, only support aggregate methods: SUM, COUNT, AVG, MIN, MAX. | Only the following aggregate functions are supported: | Modify the SQL statement to use a supported aggregate function. |
DTX-450 | There must be primaryKey in table[%s] of db[%s]. | Each application table must have a primary key. | Add a primary key to all application tables. |
Data sources: FMT mode
Error code | Error message | Description | Solution |
DTX-500 | transaction [%s]:[%s] on db [%s] flush branchInfo to db failed. | Failed to save the | Check that the business database is running correctly. |
DTX-501 | transaction [%s]:[%s] on db [%s] report branchInfo to dtx-server failed. | Failed to send a message to the dtx-server to create a branch transaction record. | Check the network connection between the DTX SDK and the dtx-server, and verify that the dtx-server is running correctly. |
DTX-502 | transaction [%s]:[%s] on db [%s] commit error | The local transaction failed to commit. | Check that the business database is running correctly. |
DTX-503 | transaction [%s]:[%s] on db [%s] rollback error | The local transaction failed to roll back. | Check that the business database is running correctly. |
DTX-504 | sql parser result is empty, sql:[%s] | The SQL parser returned an empty result. | Verify that the SQL syntax is supported by DTX. |
DTX-505 | ‘INSERT IGNORE’ and ‘INSERT ON DUPLICATE UPDATE’ statement must contain primaryKey colmun(s), sql:[%s] | The | Add the primary key column to both the column and value lists in the SQL statement. |
DTX-506 | ‘UPDATE’ and ‘DELETE’ statement must have where-statement, sql:[%s] |
| Modify the SQL statement to include a |
DTX-507 | ‘UPDATE’ statement can not update primaryKey colmun(s), sql:[%s] | An | Modify the SQL statement. |
DTX-508 | Unknown sqlType, sql:[%s] | Unsupported database type. | Currently, only OceanBase, MySQL, and Oracle are supported. |
DTX-509 | In READ_COMMITTED mode, complex query is not supported, you can use READ_UNCOMMITTED mode, sql:[%s] | Complex queries are not supported in the read committed isolation level. | Simplify the query or switch to the read uncommitted isolation level. |
DTX-510 | Insert-select statement is not supported, sql:[%s] | The | Modify the SQL statement. |
DTX-511 | branchLogItems is empty, nothing to undo, dbId:[%s] | The business database has no | - |
DTX-512 | check dirty failed, branchLogItem:[%s]. | The dirty write check failed, and an anomaly occurred during data rollback. | Manually correct the data. |
DTX-513 | insert branchInfo error, branchInfo:[%s] | Failed to save the | Check that the business database is running correctly. |
DTX-514 | lock table row failed, data may be locked by another transaction. db:[%s],tableName:[%s] ,primaryKey:[%s] | Failed to acquire a row lock because it is held by another transaction. | Investigate the transaction holding the row lock. |
DTX-515 | insert rowlock failed, txId = %s, had tried count: %d | Failed to save row lock data to the business database. | Check that the business database is running correctly and that the row lock is not held by another transaction. |
DTX-516 | transaction:[%s] lock table row failed;row:[%s:%s] was locked by transaction:[%s]. | Failed to acquire a row lock because it is held by another transaction. | Investigate the transaction holding the row lock. |
DTX-517 | insert statement primary-key’s value must be simple value, sql:%s. | In an | Use a simple value (a string or number) for the primary key. |
DTX-518 | Oracle insert statement primary-key’s value can not be Sequence.nextVal/Sequence.currVal, sql:%s. | In an Oracle | Modify the |
DTX-519 | Insert statement primary-key’s value can not be Expression, sql:%s. | The primary key value in an | Modify the |
DTX-520 | Unsupport dbType:%s. | Unsupported database type. | Currently, only OceanBase, MySQL, and Oracle are supported. |
DTX-521 | unsupport sub query in where condition. | Subqueries in a | Rewrite the SQL statement to avoid using a subquery in the |
DTX-522 | join select sql can not get one tableName. |
| Rewrite the SQL statement to avoid using a |
DTX-523 | select from more than on tableName or sub select statement, can not get a tableName. |
| Rewrite the SQL statement to avoid using JOINs or subqueries in the |
DTX-524 | select from nest sub select statement, can not get a tableName. | Nested queries are not supported. | Rewrite the SQL statement to avoid using nested queries, or switch to the read uncommitted isolation level. |
DTX-525 | select sql has no tableName. | The query statement is missing a table name. | Add a table name to the |
DTX-526 | unknown parameter, %s:%s. | An unsupported data type was used. | Modify the SQL statement to use supported data types. |
DTX-527 | executeBatch error, statement:%s. | The | Identify the cause of the error from the thrown exception. |
DTX-528 | execute Statement, but sql is empty. | The SQL statement is empty. | - |
DTX-529 | execute statement error, statement:%s. | The SQL statement failed to execute. | Identify the cause of the error from the thrown exception. |
DTX-530 | Statements is empty, no sql need execute. | The SQL statement is empty. | - |
DTX-531 | there is not sql to executed. | There is no SQL statement to execute. | - |
DTX-532 | while getAutoCommit() is true can not invoke executeBatch. | The | Start a database transaction before calling the method. |
DTX-533 | AddBatch count is not equal to parameters row count. | The number of calls to | Check your application code to ensure that the |
DTX-534 | All parameters of batch prepareStatement must have addBatch() follow. | After setting parameters for a batch | Check your application code to ensure that the |
DTX-535 | Invoking executeBatch() method need all sql statements are addBatch(), but sql[%s] is not. | All SQL statements in a batch must be added by using the | Check your application code to ensure that the |
DTX-536 | Invoking executeBatch() method need all sql statements are addBatch(sql),but sql[%s] is not. | Incorrect usage of the | Check your application code to ensure that the |
DTX-537 | Invoking executeQuery/executeUpdate/execute method need all sql statements are non-addBatch sql, but sql[%s] is addBatch. | A statement added to a batch with | Check your application code to ensure that JDBC methods are used correctly. |
DTX-538 | PreparedStatement with addBatch sql cann’t use limit-statement, sql:[%s]. | When using | Remove the |
DTX-539 | parameter count ambiguous, where-statement expect the count more than %d , but parameter count is %d. | The number of parameters provided does not match the number of placeholders in the | Ensure that the number of provided parameters matches the placeholders in the SQL statement. |
DTX-540 | parameter index ambiguous, where-statement expect the index is %d, but parameter count is %d. | The number of parameters provided does not match the number of placeholders in the | Ensure that the number of provided parameters matches the placeholders in the SQL statement. |
DTX-541 | parameter data ambiguous, where-statement expect the parameter row count is %d, but actual is %s. | For a batch | Ensure that the provided parameter count matches the SQL statement. |
DTX-542 | query log error, querySql:[%s],prameters:[%s],isPrepare:%s. | Failed to query the | Verify that the business database is available. |
DTX-543 | check dirty data error,tableName:[%s],oldRows:[%s],newRows:[%s]. | The dirty write check failed, indicating a dirty write occurred. | Manually correct the data. |
DTX-544 | auto-generate primary-key must be only one column,sql: [%s]. | An auto-incrementing primary key cannot be a composite primary key. | Change the primary key to a single-column key. |
DTX-545 | addBatch() must include primary-key(s) in sql, auto-generate primary-key don’t support,sql: [%s]. | SQL statements in an | Modify the SQL statement to explicitly include a primary key value. |
DTX-546 | insert without primary-key(s), do not support batch insert ,sql: %s. | For batch inserts, the SQL statement must specify the primary key. | Modify the SQL statement to include the primary key column. |
DTX-547 | preparedstatement addBatch, insert sql’s values must be single,the sql:[%s]. | When using | Rewrite the operation to use multiple |
DTX-548 | parameter index ambiguous, where-statement expect the index is %d, but parameter count is %d. | The number of parameters required by the SQL statement does not match the number of parameters provided. | Ensure that the parameters in your application code match the SQL statement. |
DTX-550 | parameter data ambiguous, where-statement expect the parameter row count is %d, but actual is %s. | The number of parameters required by the SQL statement does not match the number of parameters provided. | Check your application code to ensure the parameters match the SQL statement. |
DTX-551 | parameter index ambiguous, where-statement expect the index is %d, but parameter count is %d. | The number of parameters required by the SQL statement does not match the number of parameters provided. | Check your application code to ensure the parameters match the SQL statement. |
DTX-552 | parameter data ambiguous, where-statement expect the parameter row count is %d, but actual is %s. | The number of provided parameter rows does not match the required number. | Check your application code to ensure the parameters match the SQL statement. |
DTX-553 | the type of primary key must be ‘String’ or ‘Number’. | The primary key column must be a string or number data type. | Modify the primary key or change its data type. |
DTX-554 | can not get the primarykey of insert statement:[%s],parameters:[%s]. | For an | Modify the |
DTX-556 | the columns count of sql’s values is not equal to the columns count of the table, table’s column count:[%d],columns values:[%d] | The number of columns in the SQL statement's value list does not match the number of columns in the business table. | Verify that the SQL statement is correct. If the table schema has been modified, restart the application to refresh the DTX cache. |
DTX-557 | check undo datas result is true, undo do nothing, branchLogItem:[%s]. | The | - |
DTX-558 | unknown sqlType, sqlType: %s, branchLogItem:[%s]. | Unsupported SQL statement type. | Refer to the DTX developer guide and modify the SQL statement to a supported type. |
DTX-559 | check dirty datas failed, the data is dirty, tableName:[%s],postRows:[%s],dbRows:[%s],branchLogItem:[%s]. | The dirty write check failed, indicating a dirty write occurred. | Manually correct the data. |
DTX-560 | insert branch info into oracle db failed, txId:%s, actionId: %s. | Failed to save the | Verify that the business database is running correctly. |
DTX-561 | connection must setAutoCommit(false), conn: %s, rowLocks: %s. | This operation requires an active database transaction (auto-commit must be set to | - |
DTX-562 | preparedStatement only support single sql,but sql[%s] has more one sql. | A single | Split the SQL into multiple statements. |
DTX-563 | transaction [%s] on db [%s] executeQuery(%s) error. | The | Identify the cause of the error from the thrown exception. |
DTX-564 | transaction [%s] on db [%s] executeUpdate([%s]) error. | The | Identify the cause of the error from the thrown exception. |
DTX-565 | transaction [%s] on db [%s] executeUpdate([%s], int) error. | The | Identify the cause of the error from the thrown exception. |
DTX-566 | transaction [%s] on db [%s] executeUpdate([%s], int[]) error. | The | Identify the cause of the error from the thrown exception. |
DTX-567 | transaction [%s] on db [%s] executeUpdate([%s], String[]) error. | The | Identify the cause of the error from the thrown exception. |
DTX-568 | transaction [%s] on db [%s] execute([%s]) error. | The | Identify the cause of the error from the thrown exception. |
DTX-569 | transaction [%s] on db [%s] execute([%s], int) error. | The | Identify the cause of the error from the thrown exception. |
DTX-570 | transaction [%s] on db [%s] execute([%s], int[]) error. | The | Identify the cause of the error from the thrown exception. |
DTX-571 | transaction [%s] on db [%s] execute([%s],String[]) error. | The | Identify the cause of the error from the thrown exception. |
DTX-572 | addBatch(String) is not allowed while getAutoCommit() is true. | The | Start a database transaction before using the |
DTX-573 | executeBatch() is not allowed while getAutoCommit() is true. | The | Start a database transaction before using the |
DTX-574 | don’t support closeOnCompletion() ; need explicit invoke close() method to close the statement. | The | Explicitly call the |
DTX-576 | WrappedDtxDataSource.getUniqueDbId() is empty. | The | Set the |
DTX-577 | WrappedDtxDataSource.targetDataSource is null. | The | Set the |
DTX-578 | WrappedDtxDataSource.targetDataSource can not be type of IDtxDataSource. | The | Change the |
DTX-579 | DruidDtxDataSource.jdbcUrl is empty. | The | Set the |
DTX-580 | DruidDtxDataSource.userName is empty. | The | Set the |
DTX-581 | DruidDtxDataSource.password is empty. | The | Set the |