Class PoolableConnectionFactory

java.lang.Object
org.apache.commons.dbcp.PoolableConnectionFactory
All Implemented Interfaces:
org.apache.commons.pool.PoolableObjectFactory
Direct Known Subclasses:
PoolableManagedConnectionFactory

public class PoolableConnectionFactory extends Object implements org.apache.commons.pool.PoolableObjectFactory
A PoolableObjectFactory that creates PoolableConnections.
Version:
$Revision: 883393 $ $Date: 2009-11-23 11:18:35 -0500 (Mon, 23 Nov 2009) $
Author:
Rodney Waldhoff, Glenn L. Nielsen, James House, Dirk Verbeeck
  • Constructor Details

    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, boolean defaultReadOnly, boolean defaultAutoCommit)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, Collection connectionInitSqls, boolean defaultReadOnly, boolean defaultAutoCommit)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      connectionInitSqls - a Collection of SQL statements to initialize Connections. Using null turns off initialization.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      Since:
      1.3
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, int validationQueryTimeout, boolean defaultReadOnly, boolean defaultAutoCommit)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      validationQueryTimeout - the number of seconds that validation queries will wait for database response before failing. Use a value less than or equal to 0 for no timeout.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      Since:
      1.3
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, int validationQueryTimeout, Collection connectionInitSqls, boolean defaultReadOnly, boolean defaultAutoCommit)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      validationQueryTimeout - the number of seconds that validation queries will wait for database response before failing. Use a value less than or equal to 0 for no timeout.
      connectionInitSqls - a Collection of SQL statements to initialize Connections. Using null turns off initialization.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      Since:
      1.3
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, boolean defaultReadOnly, boolean defaultAutoCommit, int defaultTransactionIsolation)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      defaultTransactionIsolation - the default "Transaction Isolation" setting for returned Connections
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, Collection connectionInitSqls, boolean defaultReadOnly, boolean defaultAutoCommit, int defaultTransactionIsolation)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      connectionInitSqls - a Collection of SQL statement to initialize Connections. Using null turns off initialization.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      defaultTransactionIsolation - the default "Transaction Isolation" setting for returned Connections
      Since:
      1.3
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, int validationQueryTimeout, boolean defaultReadOnly, boolean defaultAutoCommit, int defaultTransactionIsolation)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      validationQueryTimeout - the number of seconds that validation queries will wait for database response before failing. Use a value less than or equal to 0 for no timeout.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      defaultTransactionIsolation - the default "Transaction Isolation" setting for returned Connections
      Since:
      1.3
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, int validationQueryTimeout, Collection connectionInitSqls, boolean defaultReadOnly, boolean defaultAutoCommit, int defaultTransactionIsolation)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      validationQueryTimeout - the number of seconds that validation queries will wait for database response before failing. Use a value less than or equal to 0 for no timeout.
      connectionInitSqls - a Collection of SQL statement to initialize Connections. Using null turns off initialization.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      defaultTransactionIsolation - the default "Transaction Isolation" setting for returned Connections
      Since:
      1.3
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, boolean defaultReadOnly, boolean defaultAutoCommit, AbandonedConfig config)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      config - the AbandonedConfig if tracing SQL objects
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, boolean defaultReadOnly, boolean defaultAutoCommit, int defaultTransactionIsolation, AbandonedConfig config)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      defaultTransactionIsolation - the default "Transaction Isolation" setting for returned Connections
      config - the AbandonedConfig if tracing SQL objects
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, boolean defaultReadOnly, boolean defaultAutoCommit, int defaultTransactionIsolation, String defaultCatalog, AbandonedConfig config)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      defaultTransactionIsolation - the default "Transaction Isolation" setting for returned Connections
      defaultCatalog - the default "catalog" setting for returned Connections
      config - the AbandonedConfig if tracing SQL objects
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, Boolean defaultReadOnly, boolean defaultAutoCommit, int defaultTransactionIsolation, String defaultCatalog, AbandonedConfig config)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      defaultTransactionIsolation - the default "Transaction Isolation" setting for returned Connections
      defaultCatalog - the default "catalog" setting for returned Connections
      config - the AbandonedConfig if tracing SQL objects
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, Collection connectionInitSqls, Boolean defaultReadOnly, boolean defaultAutoCommit, int defaultTransactionIsolation, String defaultCatalog, AbandonedConfig config)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      connectionInitSqls - a Collection of SQL statements to initialize Connections. Using null turns off initialization.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      defaultTransactionIsolation - the default "Transaction Isolation" setting for returned Connections
      defaultCatalog - the default "catalog" setting for returned Connections
      config - the AbandonedConfig if tracing SQL objects
      Since:
      1.3
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, int validationQueryTimeout, Boolean defaultReadOnly, boolean defaultAutoCommit, int defaultTransactionIsolation, String defaultCatalog, AbandonedConfig config)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      validationQueryTimeout - the number of seconds that validation queries will wait for database response before failing. Use a value less than or equal to 0 for no timeout.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      defaultTransactionIsolation - the default "Transaction Isolation" setting for returned Connections
      defaultCatalog - the default "catalog" setting for returned Connections
      config - the AbandonedConfig if tracing SQL objects
      Since:
      1.3
    • PoolableConnectionFactory

      public PoolableConnectionFactory(ConnectionFactory connFactory, org.apache.commons.pool.ObjectPool pool, org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, int validationQueryTimeout, Collection connectionInitSqls, Boolean defaultReadOnly, boolean defaultAutoCommit, int defaultTransactionIsolation, String defaultCatalog, AbandonedConfig config)
      Create a new PoolableConnectionFactory.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
      pool - the ObjectPool in which to pool those Connections
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements, or null to disable PreparedStatement pooling
      validationQuery - a query to use to validate Connections. Should return at least one row. Using null turns off validation.
      validationQueryTimeout - the number of seconds that validation queries will wait for database response before failing. Use a value less than or equal to 0 for no timeout.
      connectionInitSqls - a Collection of SQL statements to initialize Connections. Using null turns off initialization.
      defaultReadOnly - the default "read only" setting for borrowed Connections
      defaultAutoCommit - the default "auto commit" setting for returned Connections
      defaultTransactionIsolation - the default "Transaction Isolation" setting for returned Connections
      defaultCatalog - the default "catalog" setting for returned Connections
      config - the AbandonedConfig if tracing SQL objects
      Since:
      1.3
  • Method Details

    • setConnectionFactory

      public void setConnectionFactory(ConnectionFactory connFactory)
      Sets the ConnectionFactory from which to obtain base Connections.
      Parameters:
      connFactory - the ConnectionFactory from which to obtain base Connections
    • setValidationQuery

      public void setValidationQuery(String validationQuery)
      Sets the query I use to validate Connections. Should return at least one row. Using null turns off validation.
      Parameters:
      validationQuery - a query to use to validate Connections.
    • 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
      Since:
      1.3
    • setConnectionInitSql

      public void setConnectionInitSql(Collection connectionInitSqls)
      Sets the SQL statements I use to initialize newly created Connections. Using null turns off connection initialization.
      Parameters:
      connectionInitSqls - SQL statement to initialize Connections.
      Since:
      1.3
    • setPool

      public void setPool(org.apache.commons.pool.ObjectPool pool)
      Sets the ObjectPool in which to pool Connections.
      Parameters:
      pool - the ObjectPool in which to pool those Connections
    • getPool

      public org.apache.commons.pool.ObjectPool getPool()
      Returns the ObjectPool in which Connections are pooled.
      Returns:
      the connection pool
    • setStatementPoolFactory

      public void setStatementPoolFactory(org.apache.commons.pool.KeyedObjectPoolFactory stmtPoolFactory)
      Sets the KeyedObjectPoolFactory I use to create KeyedObjectPools for pooling PreparedStatements. Set to null to disable PreparedStatement pooling.
      Parameters:
      stmtPoolFactory - the KeyedObjectPoolFactory to use to create KeyedObjectPools for pooling PreparedStatements
    • setDefaultReadOnly

      public void setDefaultReadOnly(boolean defaultReadOnly)
      Sets the default "read only" setting for borrowed Connections
      Parameters:
      defaultReadOnly - the default "read only" setting for borrowed Connections
    • setDefaultAutoCommit

      public void setDefaultAutoCommit(boolean defaultAutoCommit)
      Sets the default "auto commit" setting for borrowed Connections
      Parameters:
      defaultAutoCommit - the default "auto commit" setting for borrowed Connections
    • setDefaultTransactionIsolation

      public void setDefaultTransactionIsolation(int defaultTransactionIsolation)
      Sets the default "Transaction Isolation" setting for borrowed Connections
      Parameters:
      defaultTransactionIsolation - the default "Transaction Isolation" setting for returned Connections
    • setDefaultCatalog

      public void setDefaultCatalog(String defaultCatalog)
      Sets the default "catalog" setting for borrowed Connections
      Parameters:
      defaultCatalog - the default "catalog" setting for borrowed Connections
    • makeObject

      public Object makeObject() throws Exception
      Specified by:
      makeObject in interface org.apache.commons.pool.PoolableObjectFactory
      Throws:
      Exception
    • destroyObject

      public void destroyObject(Object obj) throws Exception
      Specified by:
      destroyObject in interface org.apache.commons.pool.PoolableObjectFactory
      Throws:
      Exception
    • validateObject

      public boolean validateObject(Object obj)
      Specified by:
      validateObject in interface org.apache.commons.pool.PoolableObjectFactory
    • validateConnection

      public void validateConnection(Connection conn) throws SQLException
      Throws:
      SQLException
    • passivateObject

      public void passivateObject(Object obj) throws Exception
      Specified by:
      passivateObject in interface org.apache.commons.pool.PoolableObjectFactory
      Throws:
      Exception
    • activateObject

      public void activateObject(Object obj) throws Exception
      Specified by:
      activateObject in interface org.apache.commons.pool.PoolableObjectFactory
      Throws:
      Exception