org.apache.commons.dbcp2
Class PoolableConnectionFactory
- java.lang.Object
-
- org.apache.commons.dbcp2.PoolableConnectionFactory
-
- All Implemented Interfaces:
- PooledObjectFactory<PoolableConnection>
- Direct Known Subclasses:
- PoolableManagedConnectionFactory
public class PoolableConnectionFactory extends Object implements PooledObjectFactory<PoolableConnection>
APooledObjectFactory
that createsPoolableConnection
s.- Since:
- 2.0
-
-
Constructor Summary
Constructors Constructor and Description PoolableConnectionFactory(ConnectionFactory connFactory, ObjectName dataSourceJmxObjectName)
Creates a newPoolableConnectionFactory
.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method and Description void
activateObject(PooledObject<PoolableConnection> p)
void
destroyObject(PooledObject<PoolableConnection> p)
protected boolean
getCacheState()
protected ConnectionFactory
getConnectionFactory()
protected AtomicLong
getConnectionIndex()
protected ObjectName
getDataSourceJmxName()
Integer
getDefaultQueryTimeout()
Collection<String>
getDisconnectionSqlCodes()
SQL_STATE codes considered to signal fatal conditions.protected int
getMaxOpenPreparedStatements()
ObjectPool<PoolableConnection>
getPool()
Returns theObjectPool
in whichConnection
s are pooled.protected boolean
getPoolStatements()
protected void
initializeConnection(Connection conn)
boolean
isEnableAutoCommitOnReturn()
boolean
isFastFailValidation()
True means that validation will fail immediately for connections that have previously thrown SQLExceptions with SQL_STATE indicating fatal disconnection errors.boolean
isRollbackOnReturn()
PooledObject<PoolableConnection>
makeObject()
void
passivateObject(PooledObject<PoolableConnection> p)
void
setCacheState(boolean cacheState)
void
setConnectionInitSql(Collection<String> connectionInitSqls)
Sets the SQL statements I use to initialize newly createdConnection
s.void
setDefaultAutoCommit(Boolean defaultAutoCommit)
Sets the default "auto commit" setting for borrowedConnection
svoid
setDefaultCatalog(String defaultCatalog)
Sets the default "catalog" setting for borrowedConnection
svoid
setDefaultQueryTimeout(Integer defaultQueryTimeoutSeconds)
void
setDefaultReadOnly(Boolean defaultReadOnly)
Sets the default "read only" setting for borrowedConnection
svoid
setDefaultTransactionIsolation(int defaultTransactionIsolation)
Sets the default "Transaction Isolation" setting for borrowedConnection
svoid
setDisconnectionSqlCodes(Collection<String> disconnectionSqlCodes)
void
setEnableAutoCommitOnReturn(boolean enableAutoCommitOnReturn)
void
setFastFailValidation(boolean fastFailValidation)
void
setMaxConnLifetimeMillis(long maxConnLifetimeMillis)
Sets the maximum lifetime in milliseconds of a connection after which the connection will always fail activation, passivation and validation.void
setMaxOpenPreparedStatements(int maxOpenPreparedStatements)
Sets the maximum number of open prepared statements.void
setMaxOpenPrepatedStatements(int maxOpenPreparedStatements)
Deprecated.void
setPool(ObjectPool<PoolableConnection> pool)
Sets theObjectPool
in which to poolConnection
s.void
setPoolStatements(boolean poolStatements)
void
setRollbackOnReturn(boolean rollbackOnReturn)
void
setValidationQuery(String validationQuery)
Sets the query I use tovalidate
Connection
s.void
setValidationQueryTimeout(int validationQueryTimeoutSeconds)
Sets the validation query timeout, the amount of time, in seconds, that connection validation will wait for a response from the database when executing a validation query.void
validateConnection(PoolableConnection conn)
boolean
validateObject(PooledObject<PoolableConnection> p)
-
-
-
Constructor Detail
-
PoolableConnectionFactory
public PoolableConnectionFactory(ConnectionFactory connFactory, ObjectName dataSourceJmxObjectName)
Creates a newPoolableConnectionFactory
.- Parameters:
connFactory
- theConnectionFactory
from which to obtain baseConnection
sdataSourceJmxObjectName
- The JMX object name, may be null.
-
-
Method Detail
-
setValidationQuery
public void setValidationQuery(String validationQuery)
Sets the query I use tovalidate
Connection
s. Should return at least one row. If not specified,Connection.isValid(int)
will be used to validate connections.- Parameters:
validationQuery
- a query to use tovalidate
Connection
s.
-
setValidationQueryTimeout
public void setValidationQueryTimeout(int validationQueryTimeoutSeconds)
Sets the validation query timeout, the amount of time, in seconds, that connection validation will wait for a response from the database when executing a validation query. Use a value less than or equal to 0 for no timeout.- Parameters:
validationQueryTimeoutSeconds
- new validation query timeout value in seconds
-
setConnectionInitSql
public void setConnectionInitSql(Collection<String> connectionInitSqls)
Sets the SQL statements I use to initialize newly createdConnection
s. Usingnull
turns off connection initialization.- Parameters:
connectionInitSqls
- SQL statement to initializeConnection
s.
-
setPool
public void setPool(ObjectPool<PoolableConnection> pool)
Sets theObjectPool
in which to poolConnection
s.- Parameters:
pool
- theObjectPool
in which to pool thoseConnection
s
-
getPool
public ObjectPool<PoolableConnection> getPool()
Returns theObjectPool
in whichConnection
s are pooled.- Returns:
- the connection pool
-
setDefaultReadOnly
public void setDefaultReadOnly(Boolean defaultReadOnly)
Sets the default "read only" setting for borrowedConnection
s- Parameters:
defaultReadOnly
- the default "read only" setting for borrowedConnection
s
-
setDefaultAutoCommit
public void setDefaultAutoCommit(Boolean defaultAutoCommit)
Sets the default "auto commit" setting for borrowedConnection
s- Parameters:
defaultAutoCommit
- the default "auto commit" setting for borrowedConnection
s
-
setDefaultTransactionIsolation
public void setDefaultTransactionIsolation(int defaultTransactionIsolation)
Sets the default "Transaction Isolation" setting for borrowedConnection
s- Parameters:
defaultTransactionIsolation
- the default "Transaction Isolation" setting for returnedConnection
s
-
setDefaultCatalog
public void setDefaultCatalog(String defaultCatalog)
Sets the default "catalog" setting for borrowedConnection
s- Parameters:
defaultCatalog
- the default "catalog" setting for borrowedConnection
s
-
setCacheState
public void setCacheState(boolean cacheState)
-
setPoolStatements
public void setPoolStatements(boolean poolStatements)
-
setMaxOpenPrepatedStatements
@Deprecated public void setMaxOpenPrepatedStatements(int maxOpenPreparedStatements)
Deprecated. UsesetMaxOpenPreparedStatements(int)
.Deprecated due to typo in method name.- Parameters:
maxOpenPreparedStatements
- The maximum number of open prepared statements.
-
setMaxOpenPreparedStatements
public void setMaxOpenPreparedStatements(int maxOpenPreparedStatements)
Sets the maximum number of open prepared statements.- Parameters:
maxOpenPreparedStatements
- The maximum number of open prepared statements.
-
setMaxConnLifetimeMillis
public void setMaxConnLifetimeMillis(long maxConnLifetimeMillis)
Sets the maximum lifetime in milliseconds of a connection after which the connection will always fail activation, passivation and validation. A value of zero or less indicates an infinite lifetime. The default value is -1.- Parameters:
maxConnLifetimeMillis
- The maximum lifetime in milliseconds.
-
isEnableAutoCommitOnReturn
public boolean isEnableAutoCommitOnReturn()
-
setEnableAutoCommitOnReturn
public void setEnableAutoCommitOnReturn(boolean enableAutoCommitOnReturn)
-
isRollbackOnReturn
public boolean isRollbackOnReturn()
-
setRollbackOnReturn
public void setRollbackOnReturn(boolean rollbackOnReturn)
-
getDefaultQueryTimeout
public Integer getDefaultQueryTimeout()
-
setDefaultQueryTimeout
public void setDefaultQueryTimeout(Integer defaultQueryTimeoutSeconds)
-
getDisconnectionSqlCodes
public Collection<String> getDisconnectionSqlCodes()
SQL_STATE codes considered to signal fatal conditions.Overrides the defaults in
Utils.DISCONNECTION_SQL_CODES
(plus anything starting withUtils.DISCONNECTION_SQL_CODE_PREFIX
). If this property is non-null andisFastFailValidation()
istrue
, whenever connections created by this factory generate exceptions with SQL_STATE codes in this list, they will be marked as "fatally disconnected" and subsequent validations will fail fast (no attempt at isValid or validation query).If
isFastFailValidation()
isfalse
setting this property has no effect.- Returns:
- SQL_STATE codes overriding defaults
- Since:
- 2.1
-
setDisconnectionSqlCodes
public void setDisconnectionSqlCodes(Collection<String> disconnectionSqlCodes)
- Parameters:
disconnectionSqlCodes
- The disconnection SQL codes.- Since:
- 2.1
- See Also:
getDisconnectionSqlCodes()
-
isFastFailValidation
public boolean isFastFailValidation()
True means that validation will fail immediately for connections that have previously thrown SQLExceptions with SQL_STATE indicating fatal disconnection errors.- Returns:
- true if connections created by this factory will fast fail validation.
- Since:
- 2.1
- See Also:
setDisconnectionSqlCodes(Collection)
-
setFastFailValidation
public void setFastFailValidation(boolean fastFailValidation)
- Parameters:
fastFailValidation
- true means connections created by this factory will fast fail validation- Since:
- 2.1
- See Also:
isFastFailValidation()
-
makeObject
public PooledObject<PoolableConnection> makeObject() throws Exception
- Specified by:
makeObject
in interfacePooledObjectFactory<PoolableConnection>
- Throws:
Exception
-
initializeConnection
protected void initializeConnection(Connection conn) throws SQLException
- Throws:
SQLException
-
destroyObject
public void destroyObject(PooledObject<PoolableConnection> p) throws Exception
- Specified by:
destroyObject
in interfacePooledObjectFactory<PoolableConnection>
- Throws:
Exception
-
validateObject
public boolean validateObject(PooledObject<PoolableConnection> p)
- Specified by:
validateObject
in interfacePooledObjectFactory<PoolableConnection>
-
validateConnection
public void validateConnection(PoolableConnection conn) throws SQLException
- Throws:
SQLException
-
passivateObject
public void passivateObject(PooledObject<PoolableConnection> p) throws Exception
- Specified by:
passivateObject
in interfacePooledObjectFactory<PoolableConnection>
- Throws:
Exception
-
activateObject
public void activateObject(PooledObject<PoolableConnection> p) throws Exception
- Specified by:
activateObject
in interfacePooledObjectFactory<PoolableConnection>
- Throws:
Exception
-
getConnectionFactory
protected ConnectionFactory getConnectionFactory()
-
getPoolStatements
protected boolean getPoolStatements()
-
getMaxOpenPreparedStatements
protected int getMaxOpenPreparedStatements()
-
getCacheState
protected boolean getCacheState()
-
getDataSourceJmxName
protected ObjectName getDataSourceJmxName()
-
getConnectionIndex
protected AtomicLong getConnectionIndex()
-
-