public class PoolableConnectionFactory extends Object implements PooledObjectFactory<PoolableConnection>
PooledObjectFactory that creates PoolableConnections.| Constructor and Description |
|---|
PoolableConnectionFactory(ConnectionFactory connFactory,
ObjectName dataSourceJmxObjectName)
Creates a new
PoolableConnectionFactory. |
| Modifier and Type | Method and Description |
|---|---|
void |
activateObject(PooledObject<PoolableConnection> p)
Reinitializes an instance to be returned by the pool.
|
void |
destroyObject(PooledObject<PoolableConnection> p)
Destroys an instance no longer needed by the pool, using the default (NORMAL)
DestroyMode.
|
void |
destroyObject(PooledObject<PoolableConnection> p,
DestroyMode mode)
Destroys an instance no longer needed by the pool, using the provided
DestroyMode.
|
boolean |
getCacheState() |
ConnectionFactory |
getConnectionFactory() |
protected AtomicLong |
getConnectionIndex() |
Collection<String> |
getConnectionInitSqls() |
ObjectName |
getDataSourceJmxName() |
ObjectName |
getDataSourceJmxObjectName() |
Boolean |
getDefaultAutoCommit() |
String |
getDefaultCatalog() |
Integer |
getDefaultQueryTimeout() |
Integer |
getDefaultQueryTimeoutSeconds() |
Boolean |
getDefaultReadOnly() |
String |
getDefaultSchema() |
int |
getDefaultTransactionIsolation() |
Collection<String> |
getDisconnectionSqlCodes()
SQL_STATE codes considered to signal fatal conditions.
|
long |
getMaxConnLifetimeMillis() |
protected int |
getMaxOpenPreparedStatements() |
ObjectPool<PoolableConnection> |
getPool()
Returns the
ObjectPool in which Connections are pooled. |
boolean |
getPoolStatements() |
String |
getValidationQuery() |
int |
getValidationQueryTimeoutSeconds() |
protected void |
initializeConnection(Connection conn) |
boolean |
isAutoCommitOnReturn() |
boolean |
isEnableAutoCommitOnReturn()
Deprecated.
|
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()
Creates an instance that can be served by the pool and wrap it in a
PooledObject to be managed by the pool. |
void |
passivateObject(PooledObject<PoolableConnection> p)
Uninitializes an instance to be returned to the idle object pool.
|
void |
setAutoCommitOnReturn(boolean autoCommitOnReturn) |
void |
setCacheState(boolean cacheState) |
void |
setClearStatementPoolOnReturn(boolean clearStatementPoolOnReturn)
Sets whether the pool of statements (which was enabled with
setPoolStatements(boolean)) should
be cleared when the connection is returned to its pool. |
void |
setConnectionInitSql(Collection<String> connectionInitSqls)
Sets the SQL statements I use to initialize newly created
Connections. |
void |
setDefaultAutoCommit(Boolean defaultAutoCommit)
Sets the default "auto commit" setting for borrowed
Connections |
void |
setDefaultCatalog(String defaultCatalog)
Sets the default "catalog" setting for borrowed
Connections |
void |
setDefaultQueryTimeout(Integer defaultQueryTimeoutSeconds) |
void |
setDefaultReadOnly(Boolean defaultReadOnly)
Sets the default "read only" setting for borrowed
Connections |
void |
setDefaultSchema(String defaultSchema)
Sets the default "schema" setting for borrowed
Connections |
void |
setDefaultTransactionIsolation(int defaultTransactionIsolation)
Sets the default "Transaction Isolation" setting for borrowed
Connections |
void |
setDisconnectionSqlCodes(Collection<String> disconnectionSqlCodes) |
void |
setEnableAutoCommitOnReturn(boolean autoCommitOnReturn)
Deprecated.
|
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 the
ObjectPool in which to pool Connections. |
void |
setPoolStatements(boolean poolStatements) |
void |
setRollbackOnReturn(boolean rollbackOnReturn) |
void |
setValidationQuery(String validationQuery)
Sets the query I use to
validate Connections. |
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)
Ensures that the instance is safe to be returned by the pool.
|
public PoolableConnectionFactory(ConnectionFactory connFactory, ObjectName dataSourceJmxObjectName)
PoolableConnectionFactory.connFactory - the ConnectionFactory from which to obtain base ConnectionsdataSourceJmxObjectName - The JMX object name, may be null.public void activateObject(PooledObject<PoolableConnection> p) throws Exception
PooledObjectFactoryactivateObject in interface PooledObjectFactory<PoolableConnection>p - a PooledObject wrapping the instance to be activatedException - if there is a problem activating obj,
this exception may be swallowed by the pool.PooledObjectFactory.destroyObject(org.apache.tomcat.dbcp.pool2.PooledObject<T>)public void destroyObject(PooledObject<PoolableConnection> p) throws Exception
PooledObjectFactory
It is important for implementations of this method to be aware that there
is no guarantee about what state obj will be in and the
implementation should be prepared to handle unexpected errors.
Also, an implementation must take in to consideration that instances lost to the garbage collector may never be destroyed.
destroyObject in interface PooledObjectFactory<PoolableConnection>p - a PooledObject wrapping the instance to be destroyedException - should be avoided as it may be swallowed by
the pool implementation.PooledObjectFactory.validateObject(org.apache.tomcat.dbcp.pool2.PooledObject<T>),
ObjectPool.invalidateObject(T)public void destroyObject(PooledObject<PoolableConnection> p, DestroyMode mode) throws Exception
PooledObjectFactorydestroyObject in interface PooledObjectFactory<PoolableConnection>p - a PooledObject wrapping the instance to be destroyedmode - DestroyMode providing context to the factoryException - should be avoided as it may be swallowed by
the pool implementation.PooledObjectFactory.validateObject(org.apache.tomcat.dbcp.pool2.PooledObject<T>),
ObjectPool.invalidateObject(T),
PooledObjectFactory.destroyObject(PooledObject),
DestroyModepublic boolean getCacheState()
public ConnectionFactory getConnectionFactory()
protected AtomicLong getConnectionIndex()
public Collection<String> getConnectionInitSqls()
public ObjectName getDataSourceJmxName()
public ObjectName getDataSourceJmxObjectName()
public Boolean getDefaultAutoCommit()
public String getDefaultCatalog()
public Integer getDefaultQueryTimeout()
public Integer getDefaultQueryTimeoutSeconds()
public Boolean getDefaultReadOnly()
public String getDefaultSchema()
public int getDefaultTransactionIsolation()
public Collection<String> getDisconnectionSqlCodes()
Overrides the defaults in Utils.DISCONNECTION_SQL_CODES (plus anything starting with
Utils.DISCONNECTION_SQL_CODE_PREFIX). If this property is non-null and isFastFailValidation() is
true, 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() is false setting this property has no effect.
public long getMaxConnLifetimeMillis()
protected int getMaxOpenPreparedStatements()
public ObjectPool<PoolableConnection> getPool()
ObjectPool in which Connections are pooled.public boolean getPoolStatements()
public String getValidationQuery()
public int getValidationQueryTimeoutSeconds()
protected void initializeConnection(Connection conn) throws SQLException
SQLExceptionpublic boolean isAutoCommitOnReturn()
@Deprecated public boolean isEnableAutoCommitOnReturn()
isAutoCommitOnReturn().public boolean isFastFailValidation()
setDisconnectionSqlCodes(Collection)public boolean isRollbackOnReturn()
public PooledObject<PoolableConnection> makeObject() throws Exception
PooledObjectFactoryPooledObject to be managed by the pool.makeObject in interface PooledObjectFactory<PoolableConnection>PooledObject wrapping an instance that can be served by the poolException - if there is a problem creating a new instance,
this will be propagated to the code requesting an object.public void passivateObject(PooledObject<PoolableConnection> p) throws Exception
PooledObjectFactorypassivateObject in interface PooledObjectFactory<PoolableConnection>p - a PooledObject wrapping the instance to be passivatedException - if there is a problem passivating obj,
this exception may be swallowed by the pool.PooledObjectFactory.destroyObject(org.apache.tomcat.dbcp.pool2.PooledObject<T>)public void setAutoCommitOnReturn(boolean autoCommitOnReturn)
public void setCacheState(boolean cacheState)
public void setClearStatementPoolOnReturn(boolean clearStatementPoolOnReturn)
setPoolStatements(boolean)) should
be cleared when the connection is returned to its pool. Default is false.clearStatementPoolOnReturn - clear or notpublic void setConnectionInitSql(Collection<String> connectionInitSqls)
Connections. Using null turns off
connection initialization.connectionInitSqls - SQL statement to initialize Connections.public void setDefaultAutoCommit(Boolean defaultAutoCommit)
ConnectionsdefaultAutoCommit - the default "auto commit" setting for borrowed Connectionspublic void setDefaultCatalog(String defaultCatalog)
ConnectionsdefaultCatalog - the default "catalog" setting for borrowed Connectionspublic void setDefaultQueryTimeout(Integer defaultQueryTimeoutSeconds)
public void setDefaultReadOnly(Boolean defaultReadOnly)
ConnectionsdefaultReadOnly - the default "read only" setting for borrowed Connectionspublic void setDefaultSchema(String defaultSchema)
ConnectionsdefaultSchema - the default "schema" setting for borrowed Connectionspublic void setDefaultTransactionIsolation(int defaultTransactionIsolation)
ConnectionsdefaultTransactionIsolation - the default "Transaction Isolation" setting for returned Connectionspublic void setDisconnectionSqlCodes(Collection<String> disconnectionSqlCodes)
disconnectionSqlCodes - The disconnection SQL codes.getDisconnectionSqlCodes()@Deprecated public void setEnableAutoCommitOnReturn(boolean autoCommitOnReturn)
setAutoCommitOnReturn(boolean).autoCommitOnReturn - Whether to auto-commit on return.public void setFastFailValidation(boolean fastFailValidation)
fastFailValidation - true means connections created by this factory will fast fail validationisFastFailValidation()public void setMaxConnLifetimeMillis(long maxConnLifetimeMillis)
maxConnLifetimeMillis - The maximum lifetime in milliseconds.public void setMaxOpenPreparedStatements(int maxOpenPreparedStatements)
maxOpenPreparedStatements - The maximum number of open prepared statements.@Deprecated public void setMaxOpenPrepatedStatements(int maxOpenPreparedStatements)
setMaxOpenPreparedStatements(int).maxOpenPreparedStatements - The maximum number of open prepared statements.public void setPool(ObjectPool<PoolableConnection> pool)
ObjectPool in which to pool Connections.pool - the ObjectPool in which to pool those Connectionspublic void setPoolStatements(boolean poolStatements)
public void setRollbackOnReturn(boolean rollbackOnReturn)
public void setValidationQuery(String validationQuery)
validate Connections. Should return at least one row. If
not specified, Connection.isValid(int) will be used to validate connections.validationQuery - a query to use to validate Connections.public void setValidationQueryTimeout(int validationQueryTimeoutSeconds)
validationQueryTimeoutSeconds - new validation query timeout value in secondspublic void validateConnection(PoolableConnection conn) throws SQLException
SQLExceptionpublic boolean validateObject(PooledObject<PoolableConnection> p)
PooledObjectFactoryvalidateObject in interface PooledObjectFactory<PoolableConnection>p - a PooledObject wrapping the instance to be validatedfalse if obj is not valid and should
be dropped from the pool, true otherwise.Copyright © 2000-2022 Apache Software Foundation. All Rights Reserved.