Error codes

Updated at:

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 @DtxTransaction and @TccBusinessAction annotations.

Remove either the @DtxTransaction or @TccBusinessAction annotation from the bean.

DTX-002

the length of bizType[%s] can not be more than 30.

The bizType value in the @DtxTransaction annotation cannot exceed 30 characters.

Keep the bizType length within 30 characters.

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 @TccBusinessAction and @TwoPhaseBusinessAction annotations.

Remove either the @TccBusinessAction or @TwoPhaseBusinessAction annotation from the bean.

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 @ShardingKey must be of type String.

Change the type of the parameter marked with @ShardingKey to String.

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 DataSource bean specified by the dataSourceBeanId attribute of the @TccBusinessAction annotation does not exist.

Verify that the DataSource bean specified by the dataSourceBeanId attribute of the @TccBusinessAction annotation exists.

DTX-010

TCC 2.0 the interface [%s] has no @TccBusinessAction method.

The TCC 2.0 participant interface is missing the @TccBusinessAction annotation.

Ensure that the TCC 2.0 participant interface has the @TccBusinessAction annotation.

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 TccAntiSuspendDAO is not configured.

Configure the TccAntiSuspendDAO. For details, see TCC anti-suspend and idempotency integration.

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 TccAntiSuspendDAO is configured, its dataSources attribute must be set.

For details on configuring TccAntiSuspendDAO, see TCC anti-suspend and idempotency integration.

DTX-018

TCC anti-suspend: ITccAntiSuspendDAO did not initialize.

Initialization of the TCC anti-suspend TccAntiSuspendDAO is not complete.

-

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 name attribute of the @TwoPhaseBusinessAction annotation on the TCC participant interface is empty.

The name attribute of the @TwoPhaseBusinessAction annotation must be set to a globally unique value.

DTX-021

unknown actionType:[%s].

The actionType attribute of the @TwoPhaseBusinessAction annotation on the TCC participant interface is set to an unknown value.

The actionType attribute of the @TwoPhaseBusinessAction annotation can only be set to local or remote.

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 timeout attribute (in seconds) in the @DtxTransaction annotation.

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 timeout attribute (in seconds) in the @DtxTransaction annotation.

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 serverIp.

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 INSERT ... ON DUPLICATE KEY UPDATE statement.

Verify that the statement conforms to standard SQL syntax.

DTX-405

the insert sql’s columns or valurClauses is null.

Syntax error in the INSERT statement.

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: SUM, COUNT, AVG, MIN, and MAX.

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 undo log to the dtx_branch_info table.

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 INSERT IGNORE and INSERT ON DUPLICATE UPDATE statements do not support auto-incrementing primary keys.

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]

UPDATE and DELETE statements must include a WHERE clause.

Modify the SQL statement to include a WHERE clause.

DTX-507

‘UPDATE’ statement can not update primaryKey colmun(s), sql:[%s]

An UPDATE statement cannot modify the primary key value.

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 INSERT...SELECT syntax is not supported.

Modify the SQL statement.

DTX-511

branchLogItems is empty, nothing to undo, dbId:[%s]

The business database has no undo log to process.

-

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 undo log to the business database.

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 INSERT statement, the value of a primary key column must be a simple data type, such as a string or a number.

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 INSERT statement, a sequence cannot be used for the primary key value.

Modify the INSERT statement to avoid using a sequence directly for the primary key value.

DTX-519

Insert statement primary-key’s value can not be Expression, sql:%s.

The primary key value in an INSERT statement cannot be an expression.

Modify the INSERT statement to use a literal value instead of an expression.

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 WHERE clause are not supported.

Rewrite the SQL statement to avoid using a subquery in the WHERE clause.

DTX-522

join select sql can not get one tableName.

JOIN statements are not supported because they can introduce ambiguity by referencing multiple tables.

Rewrite the SQL statement to avoid using a JOIN, or switch to the read uncommitted isolation level.

DTX-523

select from more than on tableName or sub select statement, can not get a tableName.

JOIN statements and subqueries in the FROM clause are not supported because they can introduce ambiguity by referencing multiple tables.

Rewrite the SQL statement to avoid using JOINs or subqueries in the FROM clause, or switch to the read uncommitted isolation level.

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 FROM clause.

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 executeBatch method failed.

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 executeBatch method must be called within a database transaction (when auto-commit is false).

Start a database transaction before calling the method.

DTX-533

AddBatch count is not equal to parameters row count.

The number of calls to addBatch does not match the number of parameter rows.

Check your application code to ensure that the addBatch method is used correctly.

DTX-534

All parameters of batch prepareStatement must have addBatch() follow.

After setting parameters for a batch PreparedStatement, you must call the addBatch method.

Check your application code to ensure that the addBatch method is used correctly.

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 addBatch method. This error indicates a statement was executed without being added.

Check your application code to ensure that the addBatch method is used correctly.

DTX-536

Invoking executeBatch() method need all sql statements are addBatch(sql),but sql[%s] is not.

Incorrect usage of the executeBatch method.

Check your application code to ensure that the addBatch method is used correctly.

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 addBatch cannot be executed by executeQuery, executeUpdate, or execute.

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 addBatch with a PreparedStatement, the SQL statement cannot include a LIMIT clause.

Remove the LIMIT clause from the SQL statement.

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 PreparedStatement.

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 PreparedStatement.

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 PreparedStatement, the number of parameter rows provided does not match the expected number.

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 undo log.

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 addBatch call must include the primary key. Auto-incrementing primary keys are not supported.

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 addBatch with a PreparedStatement, an INSERT statement cannot contain multiple sets of values.

Rewrite the operation to use multiple addBatch calls, one for each set of values.

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 INSERT statement with an auto-incrementing primary key, the system failed to retrieve the new primary key value.

Modify the INSERT statement to explicitly include the primary key.

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 undo log is empty; therefore, no undo operation is performed.

-

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 undo log to an Oracle database.

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 false).

-

DTX-562

preparedStatement only support single sql,but sql[%s] has more one sql.

A single PreparedStatement does not support multiple SQL statements.

Split the SQL into multiple statements.

DTX-563

transaction [%s] on db [%s] executeQuery(%s) error.

The executeQuery method failed to execute.

Identify the cause of the error from the thrown exception.

DTX-564

transaction [%s] on db [%s] executeUpdate([%s]) error.

The executeUpdate method failed to execute.

Identify the cause of the error from the thrown exception.

DTX-565

transaction [%s] on db [%s] executeUpdate([%s], int) error.

The executeUpdate method failed to execute.

Identify the cause of the error from the thrown exception.

DTX-566

transaction [%s] on db [%s] executeUpdate([%s], int[]) error.

The executeUpdate method failed to execute.

Identify the cause of the error from the thrown exception.

DTX-567

transaction [%s] on db [%s] executeUpdate([%s], String[]) error.

The executeUpdate method failed to execute.

Identify the cause of the error from the thrown exception.

DTX-568

transaction [%s] on db [%s] execute([%s]) error.

The execute method failed to execute.

Identify the cause of the error from the thrown exception.

DTX-569

transaction [%s] on db [%s] execute([%s], int) error.

The execute method failed to execute.

Identify the cause of the error from the thrown exception.

DTX-570

transaction [%s] on db [%s] execute([%s], int[]) error.

The execute method failed to execute.

Identify the cause of the error from the thrown exception.

DTX-571

transaction [%s] on db [%s] execute([%s],String[]) error.

The execute method failed to execute.

Identify the cause of the error from the thrown exception.

DTX-572

addBatch(String) is not allowed while getAutoCommit() is true.

The addBatch(String) method must be used after a database transaction is started.

Start a database transaction before using the addBatch(String) method.

DTX-573

executeBatch() is not allowed while getAutoCommit() is true.

The executeBatch method must be used after a database transaction is started.

Start a database transaction before using the executeBatch method.

DTX-574

don’t support closeOnCompletion() ; need explicit invoke close() method to close the statement.

The closeOnCompletion method is not supported.

Explicitly call the close method.

DTX-576

WrappedDtxDataSource.getUniqueDbId() is empty.

The uniqueDbId attribute of WrappedDtxDataSource cannot be empty.

Set the uniqueDbId attribute for the WrappedDtxDataSource to a globally unique value.

DTX-577

WrappedDtxDataSource.targetDataSource is null.

The targetDataSource attribute of WrappedDtxDataSource cannot be null.

Set the targetDataSource attribute for the WrappedDtxDataSource.

DTX-578

WrappedDtxDataSource.targetDataSource can not be type of IDtxDataSource.

The targetDataSource of a WrappedDtxDataSource object cannot be another IDtxDataSource instance.

Change the targetDataSource attribute of the WrappedDtxDataSource to a type other than IDtxDataSource.

DTX-579

DruidDtxDataSource.jdbcUrl is empty.

The jdbcUrl attribute of DruidDtxDataSource is not set.

Set the jdbcUrl attribute for the DruidDtxDataSource.

DTX-580

DruidDtxDataSource.userName is empty.

The userName attribute of DruidDtxDataSource cannot be empty.

Set the userName attribute for the DruidDtxDataSource.

DTX-581

DruidDtxDataSource.password is empty.

The password attribute of DruidDtxDataSource cannot be empty.

Set the password attribute for the DruidDtxDataSource.