Class 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
    • Field Detail

      • _validationQuery

        protected volatile String _validationQuery
      • _validationQueryTimeout

        protected volatile int _validationQueryTimeout
      • _connectionInitSqls

        protected Collection _connectionInitSqls
      • _pool

        protected volatile org.apache.commons.pool.ObjectPool _pool
      • _stmtPoolFactory

        protected volatile org.apache.commons.pool.KeyedObjectPoolFactory _stmtPoolFactory
      • _defaultReadOnly

        protected Boolean _defaultReadOnly
      • _defaultAutoCommit

        protected boolean _defaultAutoCommit
      • _defaultTransactionIsolation

        protected int _defaultTransactionIsolation
      • _defaultCatalog

        protected String _defaultCatalog
      • _config

        protected AbandonedConfig _config
        Configuration for removing abandoned connections.
    • Constructor Detail

      • 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 Detail

      • 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
      • 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