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

Reply via email to