@Override public void passivateObject(PooledObject<PoolableConnection> p) throws Exception { validateLifetime(p); PoolableConnection conn = p.getObject(); Boolean connAutoCommit = null; if (rollbackOnReturn) { connAutoCommit = Boolean.valueOf(conn.getAutoCommit()); if (!connAutoCommit.booleanValue() && !conn.isReadOnly()) { conn.rollback(); } } conn.clearWarnings(); // DBCP-97 / DBCP-399 / DBCP-351 Idle connections in the pool should // have autoCommit enabled if (enableAutoCommitOnReturn) { if (connAutoCommit == null) { connAutoCommit = Boolean.valueOf(conn.getAutoCommit()); } if (!connAutoCommit.booleanValue()) { conn.setAutoCommit(true); } } conn.passivate(); }
@Override public void activateObject(PooledObject<PoolableConnection> p) throws Exception { validateLifetime(p); PoolableConnection conn = p.getObject(); conn.activate(); if (_defaultAutoCommit != null && conn.getAutoCommit() != _defaultAutoCommit.booleanValue()) { conn.setAutoCommit(_defaultAutoCommit.booleanValue()); } if (_defaultTransactionIsolation != UNKNOWN_TRANSACTIONISOLATION && conn.getTransactionIsolation() != _defaultTransactionIsolation) { conn.setTransactionIsolation(_defaultTransactionIsolation); } if (_defaultReadOnly != null && conn.isReadOnly() != _defaultReadOnly.booleanValue()) { conn.setReadOnly(_defaultReadOnly.booleanValue()); } if (_defaultCatalog != null && !_defaultCatalog.equals(conn.getCatalog())) { conn.setCatalog(_defaultCatalog); } conn.setDefaultQueryTimeout(defaultQueryTimeout); }
public void validateConnection(PoolableConnection conn) throws SQLException { if (conn.isClosed()) { throw new SQLException("validateConnection: connection closed"); } conn.validate(_validationQuery, _validationQueryTimeout); }