diff --git a/src/main/java/com/alibaba/druid/pool/ConnectionHolder.java b/src/main/java/com/alibaba/druid/pool/ConnectionHolder.java index 3f7fa83775..6bd7ed9fc4 100644 --- a/src/main/java/com/alibaba/druid/pool/ConnectionHolder.java +++ b/src/main/java/com/alibaba/druid/pool/ConnectionHolder.java @@ -118,10 +118,19 @@ public final class ConnectionHolder { } public void reset() throws SQLException { - conn.setReadOnly(defaultReadOnly); - conn.setHoldability(defaultHoldability); - conn.setTransactionIsolation(defaultTransactionIsolation); - + // reset default settings + if (conn.isReadOnly() != defaultReadOnly) { + conn.setReadOnly(defaultReadOnly); + } + + if (conn.getHoldability() != defaultHoldability) { + conn.setHoldability(defaultHoldability); + } + + if (conn.getTransactionIsolation() != defaultTransactionIsolation) { + conn.setTransactionIsolation(defaultTransactionIsolation); + } + connectionEventListeners.clear(); statementEventListeners.clear();