Package org.apache.commons.dbcp2
Class PoolableConnectionFactory
java.lang.Object
org.apache.commons.dbcp2.PoolableConnectionFactory
- All Implemented Interfaces:
org.apache.commons.pool2.PooledObjectFactory<PoolableConnection>
- Direct Known Subclasses:
PoolableManagedConnectionFactory
public class PoolableConnectionFactory
extends Object
implements org.apache.commons.pool2.PooledObjectFactory<PoolableConnection>
A
PooledObjectFactory
that creates
PoolableConnection
s.- Since:
- 2.0
- Version:
- $Id: PoolableConnectionFactory.java 1659452 2015-02-13 04:00:39Z psteitz $
- Author:
- Rodney Waldhoff, Glenn L. Nielsen, James House, Dirk Verbeeck
-
Constructor Summary
ConstructorsConstructorDescriptionPoolableConnectionFactory
(ConnectionFactory connFactory, ObjectName dataSourceJmxName) Create a newPoolableConnectionFactory
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
activateObject
(org.apache.commons.pool2.PooledObject<PoolableConnection> p) void
destroyObject
(org.apache.commons.pool2.PooledObject<PoolableConnection> p) SQL_STATE codes considered to signal fatal conditions.org.apache.commons.pool2.ObjectPool
<PoolableConnection> getPool()
Returns theObjectPool
in whichConnection
s are pooled.boolean
boolean
True means that validation will fail immediately for connections that have previously thrown SQLExceptions with SQL_STATE indicating fatal disconnection errors.boolean
org.apache.commons.pool2.PooledObject
<PoolableConnection> void
passivateObject
(org.apache.commons.pool2.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 defaultQueryTimeout) 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
setMaxOpenPrepatedStatements
(int maxOpenPreparedStatements) void
setPool
(org.apache.commons.pool2.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 timeout) 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
boolean
validateObject
(org.apache.commons.pool2.PooledObject<PoolableConnection> p)
-
Constructor Details
-
PoolableConnectionFactory
Create a newPoolableConnectionFactory
.- Parameters:
connFactory
- theConnectionFactory
from which to obtain baseConnection
s
-
-
Method Details
-
setValidationQuery
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 timeout) 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:
timeout
- new validation query timeout value in seconds
-
setConnectionInitSql
Sets the SQL statements I use to initialize newly createdConnection
s. Usingnull
turns off connection initialization.- Parameters:
connectionInitSqls
- SQL statement to initializeConnection
s.
-
setPool
Sets theObjectPool
in which to poolConnection
s.- Parameters:
pool
- theObjectPool
in which to pool thoseConnection
s
-
getPool
Returns theObjectPool
in whichConnection
s are pooled.- Returns:
- the connection pool
-
setDefaultReadOnly
Sets the default "read only" setting for borrowedConnection
s- Parameters:
defaultReadOnly
- the default "read only" setting for borrowedConnection
s
-
setDefaultAutoCommit
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
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
public void setMaxOpenPrepatedStatements(int maxOpenPreparedStatements) -
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. -
isEnableAutoCommitOnReturn
public boolean isEnableAutoCommitOnReturn() -
setEnableAutoCommitOnReturn
public void setEnableAutoCommitOnReturn(boolean enableAutoCommitOnReturn) -
isRollbackOnReturn
public boolean isRollbackOnReturn() -
setRollbackOnReturn
public void setRollbackOnReturn(boolean rollbackOnReturn) -
getDefaultQueryTimeout
-
setDefaultQueryTimeout
-
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
- Parameters:
disconnectionSqlCodes
-- Since:
- 2.1
- See Also:
-
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:
-
setFastFailValidation
public void setFastFailValidation(boolean fastFailValidation) - Parameters:
fastFailValidation
- true means connections created by this factory will fast fail validation- Since:
- 2.1
- See Also:
-
makeObject
- Specified by:
makeObject
in interfaceorg.apache.commons.pool2.PooledObjectFactory<PoolableConnection>
- Throws:
Exception
-
destroyObject
public void destroyObject(org.apache.commons.pool2.PooledObject<PoolableConnection> p) throws Exception - Specified by:
destroyObject
in interfaceorg.apache.commons.pool2.PooledObjectFactory<PoolableConnection>
- Throws:
Exception
-
validateObject
- Specified by:
validateObject
in interfaceorg.apache.commons.pool2.PooledObjectFactory<PoolableConnection>
-
validateConnection
- Throws:
SQLException
-
passivateObject
public void passivateObject(org.apache.commons.pool2.PooledObject<PoolableConnection> p) throws Exception - Specified by:
passivateObject
in interfaceorg.apache.commons.pool2.PooledObjectFactory<PoolableConnection>
- Throws:
Exception
-
activateObject
public void activateObject(org.apache.commons.pool2.PooledObject<PoolableConnection> p) throws Exception - Specified by:
activateObject
in interfaceorg.apache.commons.pool2.PooledObjectFactory<PoolableConnection>
- Throws:
Exception
-