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
PoolableConnections.- 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 TypeMethodDescriptionvoidactivateObject(org.apache.commons.pool2.PooledObject<PoolableConnection> p) voiddestroyObject(org.apache.commons.pool2.PooledObject<PoolableConnection> p) SQL_STATE codes considered to signal fatal conditions.org.apache.commons.pool2.ObjectPool<PoolableConnection> getPool()Returns theObjectPoolin whichConnections are pooled.booleanbooleanTrue means that validation will fail immediately for connections that have previously thrown SQLExceptions with SQL_STATE indicating fatal disconnection errors.booleanorg.apache.commons.pool2.PooledObject<PoolableConnection> voidpassivateObject(org.apache.commons.pool2.PooledObject<PoolableConnection> p) voidsetCacheState(boolean cacheState) voidsetConnectionInitSql(Collection<String> connectionInitSqls) Sets the SQL statements I use to initialize newly createdConnections.voidsetDefaultAutoCommit(Boolean defaultAutoCommit) Sets the default "auto commit" setting for borrowedConnectionsvoidsetDefaultCatalog(String defaultCatalog) Sets the default "catalog" setting for borrowedConnectionsvoidsetDefaultQueryTimeout(Integer defaultQueryTimeout) voidsetDefaultReadOnly(Boolean defaultReadOnly) Sets the default "read only" setting for borrowedConnectionsvoidsetDefaultTransactionIsolation(int defaultTransactionIsolation) Sets the default "Transaction Isolation" setting for borrowedConnectionsvoidsetDisconnectionSqlCodes(Collection<String> disconnectionSqlCodes) voidsetEnableAutoCommitOnReturn(boolean enableAutoCommitOnReturn) voidsetFastFailValidation(boolean fastFailValidation) voidsetMaxConnLifetimeMillis(long maxConnLifetimeMillis) Sets the maximum lifetime in milliseconds of a connection after which the connection will always fail activation, passivation and validation.voidsetMaxOpenPrepatedStatements(int maxOpenPreparedStatements) voidsetPool(org.apache.commons.pool2.ObjectPool<PoolableConnection> pool) Sets theObjectPoolin which to poolConnections.voidsetPoolStatements(boolean poolStatements) voidsetRollbackOnReturn(boolean rollbackOnReturn) voidsetValidationQuery(String validationQuery) Sets the query I use tovalidateConnections.voidsetValidationQueryTimeout(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.voidbooleanvalidateObject(org.apache.commons.pool2.PooledObject<PoolableConnection> p)
-
Constructor Details
-
PoolableConnectionFactory
Create a newPoolableConnectionFactory.- Parameters:
connFactory- theConnectionFactoryfrom which to obtain baseConnections
-
-
Method Details
-
setValidationQuery
Sets the query I use tovalidateConnections. Should return at least one row. If not specified,Connection.isValid(int)will be used to validate connections.- Parameters:
validationQuery- a query to use tovalidateConnections.
-
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 createdConnections. Usingnullturns off connection initialization.- Parameters:
connectionInitSqls- SQL statement to initializeConnections.
-
setPool
Sets theObjectPoolin which to poolConnections.- Parameters:
pool- theObjectPoolin which to pool thoseConnections
-
getPool
Returns theObjectPoolin whichConnections are pooled.- Returns:
- the connection pool
-
setDefaultReadOnly
Sets the default "read only" setting for borrowedConnections- Parameters:
defaultReadOnly- the default "read only" setting for borrowedConnections
-
setDefaultAutoCommit
Sets the default "auto commit" setting for borrowedConnections- Parameters:
defaultAutoCommit- the default "auto commit" setting for borrowedConnections
-
setDefaultTransactionIsolation
public void setDefaultTransactionIsolation(int defaultTransactionIsolation) Sets the default "Transaction Isolation" setting for borrowedConnections- Parameters:
defaultTransactionIsolation- the default "Transaction Isolation" setting for returnedConnections
-
setDefaultCatalog
Sets the default "catalog" setting for borrowedConnections- Parameters:
defaultCatalog- the default "catalog" setting for borrowedConnections
-
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()isfalsesetting 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:
makeObjectin interfaceorg.apache.commons.pool2.PooledObjectFactory<PoolableConnection>- Throws:
Exception
-
destroyObject
public void destroyObject(org.apache.commons.pool2.PooledObject<PoolableConnection> p) throws Exception - Specified by:
destroyObjectin interfaceorg.apache.commons.pool2.PooledObjectFactory<PoolableConnection>- Throws:
Exception
-
validateObject
- Specified by:
validateObjectin interfaceorg.apache.commons.pool2.PooledObjectFactory<PoolableConnection>
-
validateConnection
- Throws:
SQLException
-
passivateObject
public void passivateObject(org.apache.commons.pool2.PooledObject<PoolableConnection> p) throws Exception - Specified by:
passivateObjectin interfaceorg.apache.commons.pool2.PooledObjectFactory<PoolableConnection>- Throws:
Exception
-
activateObject
public void activateObject(org.apache.commons.pool2.PooledObject<PoolableConnection> p) throws Exception - Specified by:
activateObjectin interfaceorg.apache.commons.pool2.PooledObjectFactory<PoolableConnection>- Throws:
Exception
-