This is an automated email from the ASF dual-hosted git repository.
strongduanmu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 245c489eda6 Add rollback transaction failure log on connection close
(#38694)
245c489eda6 is described below
commit 245c489eda60ec9a88b7603506119df85ccd9dd6
Author: ZhangCheng <[email protected]>
AuthorDate: Fri May 15 11:54:13 2026 +0800
Add rollback transaction failure log on connection close (#38694)
---
.../jdbc/core/connection/ShardingSphereConnection.java | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
index 7a5103975f6..00a8d7959e8 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.driver.jdbc.core.connection;
import lombok.Getter;
+import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import
org.apache.shardingsphere.database.connector.core.type.DatabaseTypeRegistry;
import org.apache.shardingsphere.driver.exception.ConnectionClosedException;
@@ -49,6 +50,7 @@ import java.util.concurrent.Executor;
/**
* ShardingSphere connection.
*/
+@Slf4j
@HighFrequencyInvocation
public final class ShardingSphereConnection extends AbstractConnectionAdapter {
@@ -298,9 +300,7 @@ public final class ShardingSphereConnection extends
AbstractConnectionAdapter {
@Override
public void close() throws SQLException {
- if
(databaseConnectionManager.getConnectionTransaction().isInDistributedTransaction(databaseConnectionManager.getConnectionContext().getTransactionContext()))
{
- databaseConnectionManager.getConnectionTransaction().rollback();
- }
+ rollbackTransaction();
closed = true;
processEngine.disconnect(processId);
try {
@@ -311,6 +311,18 @@ public final class ShardingSphereConnection extends
AbstractConnectionAdapter {
}
}
+ private void rollbackTransaction() {
+ try {
+ if
(databaseConnectionManager.getConnectionTransaction().isInDistributedTransaction(databaseConnectionManager.getConnectionContext().getTransactionContext()))
{
+
databaseConnectionManager.getConnectionTransaction().rollback();
+ }
+ // CHECKSTYLE:OFF
+ } catch (final Exception ex) {
+ // CHECKSTYLE:ON
+ log.warn("Rollback transaction failed on connection close", ex);
+ }
+ }
+
/**
* Register statement manager.
*