support useLocalSessionState config, default is true

This commit is contained in:
wenshao
2013-04-15 17:16:20 +08:00
parent b1e563fa5f
commit 13f6ad479f
@@ -830,6 +830,13 @@ public class DruidPooledConnection extends PoolableWrapper implements javax.sql.
@Override
public void setReadOnly(boolean readOnly) throws SQLException {
checkState();
boolean useLocalSessionState = holder.getDataSource().isUseLocalSessionState();
if (useLocalSessionState) {
if (readOnly == holder.isUnderlyingReadOnly()) {
return;
}
}
conn.setReadOnly(readOnly);
holder.setUnderlyingReadOnly(readOnly);
@@ -859,6 +866,13 @@ public class DruidPooledConnection extends PoolableWrapper implements javax.sql.
@Override
public void setTransactionIsolation(int level) throws SQLException {
checkState();
boolean useLocalSessionState = holder.getDataSource().isUseLocalSessionState();
if (useLocalSessionState) {
if (level == holder.getUnderlyingTransactionIsolation()) {
return;
}
}
conn.setTransactionIsolation(level);
holder.setUnderlyingTransactionIsolation(level);
@@ -902,6 +916,13 @@ public class DruidPooledConnection extends PoolableWrapper implements javax.sql.
@Override
public void setHoldability(int holdability) throws SQLException {
checkState();
boolean useLocalSessionState = holder.getDataSource().isUseLocalSessionState();
if (useLocalSessionState) {
if (holdability == holder.getUnderlyingHoldability()) {
return;
}
}
conn.setHoldability(holdability);
holder.setUnderlyingHoldability(holdability);