From 94e2a384b43f0069d8e384cf1bb5b6986c3402a1 Mon Sep 17 00:00:00 2001 From: xuanyi Date: Mon, 2 Mar 2020 14:59:59 +0800 Subject: [PATCH] fix https://github.com/alibaba/druid/issues/3707 --- src/main/java/com/alibaba/druid/util/OracleUtils.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alibaba/druid/util/OracleUtils.java b/src/main/java/com/alibaba/druid/util/OracleUtils.java index 7ac4a9699e..8a1c49a9fb 100644 --- a/src/main/java/com/alibaba/druid/util/OracleUtils.java +++ b/src/main/java/com/alibaba/druid/util/OracleUtils.java @@ -38,6 +38,7 @@ import com.alibaba.druid.support.logging.LogFactory; import oracle.jdbc.OracleConnection; import oracle.jdbc.OracleResultSet; import oracle.jdbc.OracleStatement; +import oracle.jdbc.driver.T4CXAConnection; import oracle.jdbc.internal.OraclePreparedStatement; import oracle.jdbc.xa.client.OracleXAConnection; import oracle.sql.ROWID; @@ -47,7 +48,12 @@ public class OracleUtils { private final static Log LOG = LogFactory.getLog(OracleUtils.class); public static XAConnection OracleXAConnection(Connection oracleConnection) throws XAException { - return new OracleXAConnection(oracleConnection); + String oracleConnectionClassName = oracleConnection.getClass().getName(); + if ("oracle.jdbc.driver.T4CConnection".equals(oracleConnectionClassName)) { + return new T4CXAConnection(oracleConnection); + } else { + return new OracleXAConnection(oracleConnection); + } } public static int getRowPrefetch(PreparedStatement stmt) throws SQLException {