Class InstanceKeyDataSource

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.AutoCloseable, java.sql.Wrapper, javax.naming.Referenceable, javax.sql.CommonDataSource, javax.sql.DataSource
    Direct Known Subclasses:
    PerUserPoolDataSource, SharedPoolDataSource

    public abstract class InstanceKeyDataSource
    extends java.lang.Object
    implements javax.sql.DataSource, javax.naming.Referenceable, java.io.Serializable, java.lang.AutoCloseable

    The base class for SharedPoolDataSource and PerUserPoolDataSource. Many of the configuration properties are shared and defined here. This class is declared public in order to allow particular usage with commons-beanutils; do not make direct use of it outside of commons-dbcp.

    A J2EE container will normally provide some method of initializing the DataSource whose attributes are presented as bean getters/setters and then deploying it via JNDI. It is then available to an application as a source of pooled logical connections to the database. The pool needs a source of physical connections. This source is in the form of a ConnectionPoolDataSource that can be specified via the setDataSourceName(String) used to lookup the source via JNDI.

    Although normally used within a JNDI environment, A DataSource can be instantiated and initialized as any bean. In this case the ConnectionPoolDataSource will likely be instantiated in a similar manner. This class allows the physical source of connections to be attached directly to this pool using the setConnectionPoolDataSource(ConnectionPoolDataSource) method.

    The dbcp package contains an adapter, DriverAdapterCPDS, that can be used to allow the use of DataSource's based on this class with jdbc driver implementations that do not supply a ConnectionPoolDataSource, but still provide a Driver implementation.

    The package documentation contains an example using Apache Tomcat and JNDI and it also contains a non-JNDI example.

    Since:
    2.0
    Version:
    $Id: InstanceKeyDataSource.java 1658644 2015-02-10 08:59:07Z tn $
    Author:
    John D. McNally
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      InstanceKeyDataSource()
      Default no-arg constructor for Serialization
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract void close()
      Close the connection pool being maintained by this datasource.
      java.sql.Connection getConnection()
      Attempt to establish a database connection.
      java.sql.Connection getConnection​(java.lang.String username, java.lang.String password)
      Attempt to retrieve a database connection using getPooledConnectionAndInfo(String, String) with the provided username and password.
      javax.sql.ConnectionPoolDataSource getConnectionPoolDataSource()
      Get the value of connectionPoolDataSource.
      java.lang.String getDataSourceName()
      Get the name of the ConnectionPoolDataSource which backs this pool.
      boolean getDefaultBlockWhenExhausted()
      Gets the default value for BaseObjectPoolConfig.getBlockWhenExhausted() for each per user pool.
      java.lang.String getDefaultEvictionPolicyClassName()
      Gets the default value for BaseObjectPoolConfig.getEvictionPolicyClassName() for each per user pool.
      boolean getDefaultLifo()
      Gets the default value for BaseObjectPoolConfig.getLifo() for each per user pool.
      int getDefaultMaxIdle()
      Gets the default value for GenericKeyedObjectPoolConfig.getMaxIdlePerKey() for each per user pool.
      int getDefaultMaxTotal()
      Gets the default value for GenericKeyedObjectPoolConfig.getMaxTotalPerKey() for each per user pool.
      long getDefaultMaxWaitMillis()
      Gets the default value for BaseObjectPoolConfig.getMaxWaitMillis() for each per user pool.
      long getDefaultMinEvictableIdleTimeMillis()
      Gets the default value for BaseObjectPoolConfig.getMinEvictableIdleTimeMillis() for each per user pool.
      int getDefaultMinIdle()
      Gets the default value for GenericKeyedObjectPoolConfig.getMinIdlePerKey() for each per user pool.
      int getDefaultNumTestsPerEvictionRun()
      Gets the default value for BaseObjectPoolConfig.getNumTestsPerEvictionRun() for each per user pool.
      long getDefaultSoftMinEvictableIdleTimeMillis()
      Gets the default value for GenericObjectPool#getSoftMinEvictableIdleTimeMillis() for each per user pool.
      boolean getDefaultTestOnBorrow()
      Gets the default value for GenericObjectPool#getTestOnBorrow() for each per user pool.
      boolean getDefaultTestOnCreate()
      Gets the default value for GenericObjectPool#getTestOnCreate() for each per user pool.
      boolean getDefaultTestOnReturn()
      Gets the default value for GenericObjectPool#getTestOnReturn() for each per user pool.
      boolean getDefaultTestWhileIdle()
      Gets the default value for GenericObjectPool#getTestWhileIdle() for each per user pool.
      long getDefaultTimeBetweenEvictionRunsMillis()
      Gets the default value for GenericObjectPool#getTimeBetweenEvictionRunsMillis () for each per user pool.
      int getDefaultTransactionIsolation()
      Get the value of defaultTransactionIsolation, which defines the state of connections handed out from this pool.
      java.lang.String getDescription()
      Get the description.
      java.lang.String getJndiEnvironment​(java.lang.String key)
      Get the value of jndiEnvironment which is used when instantiating a jndi InitialContext.
      int getLoginTimeout()
      Get the value of loginTimeout.
      java.io.PrintWriter getLogWriter()
      Get the value of logWriter.
      long getMaxConnLifetimeMillis()
      Returns the maximum permitted lifetime of a connection in milliseconds.
      java.util.logging.Logger getParentLogger()  
      java.lang.String getValidationQuery()
      The SQL query that will be used to validate connections from this pool before returning them to the caller.
      int getValidationQueryTimeout()
      Returns the timeout in seconds before the validation query fails.
      java.lang.Boolean isDefaultAutoCommit()
      Get the value of defaultAutoCommit, which defines the state of connections handed out from this pool.
      java.lang.Boolean isDefaultReadOnly()
      Get the value of defaultReadOnly, which defines the state of connections handed out from this pool.
      boolean isRollbackAfterValidation()
      Whether a rollback will be issued after executing the SQL query that will be used to validate connections from this pool before returning them to the caller.
      boolean isWrapperFor​(java.lang.Class<?> iface)  
      void setConnectionPoolDataSource​(javax.sql.ConnectionPoolDataSource v)
      Set the backend ConnectionPoolDataSource.
      void setDataSourceName​(java.lang.String v)
      Set the name of the ConnectionPoolDataSource which backs this pool.
      void setDefaultAutoCommit​(java.lang.Boolean v)
      Set the value of defaultAutoCommit, which defines the state of connections handed out from this pool.
      void setDefaultBlockWhenExhausted​(boolean blockWhenExhausted)
      Sets the default value for BaseObjectPoolConfig.getBlockWhenExhausted() for each per user pool.
      void setDefaultEvictionPolicyClassName​(java.lang.String evictionPolicyClassName)
      Sets the default value for BaseObjectPoolConfig.getEvictionPolicyClassName() for each per user pool.
      void setDefaultLifo​(boolean lifo)
      Sets the default value for BaseObjectPoolConfig.getLifo() for each per user pool.
      void setDefaultMaxIdle​(int maxIdle)
      Sets the default value for GenericKeyedObjectPoolConfig.getMaxIdlePerKey() for each per user pool.
      void setDefaultMaxTotal​(int maxTotal)
      Sets the default value for GenericKeyedObjectPoolConfig.getMaxTotalPerKey() for each per user pool.
      void setDefaultMaxWaitMillis​(long maxWaitMillis)
      Sets the default value for BaseObjectPoolConfig.getMaxWaitMillis() for each per user pool.
      void setDefaultMinEvictableIdleTimeMillis​(long minEvictableIdleTimeMillis)
      Sets the default value for BaseObjectPoolConfig.getMinEvictableIdleTimeMillis() for each per user pool.
      void setDefaultMinIdle​(int minIdle)
      Sets the default value for GenericKeyedObjectPoolConfig.getMinIdlePerKey() for each per user pool.
      void setDefaultNumTestsPerEvictionRun​(int numTestsPerEvictionRun)
      Sets the default value for BaseObjectPoolConfig.getNumTestsPerEvictionRun() for each per user pool.
      void setDefaultReadOnly​(java.lang.Boolean v)
      Set the value of defaultReadOnly, which defines the state of connections handed out from this pool.
      void setDefaultSoftMinEvictableIdleTimeMillis​(long softMinEvictableIdleTimeMillis)
      Sets the default value for GenericObjectPool#getSoftMinEvictableIdleTimeMillis() for each per user pool.
      void setDefaultTestOnBorrow​(boolean testOnBorrow)
      Sets the default value for GenericObjectPool#getTestOnBorrow() for each per user pool.
      void setDefaultTestOnCreate​(boolean testOnCreate)
      Sets the default value for GenericObjectPool#getTestOnCreate() for each per user pool.
      void setDefaultTestOnReturn​(boolean testOnReturn)
      Sets the default value for GenericObjectPool#getTestOnReturn() for each per user pool.
      void setDefaultTestWhileIdle​(boolean testWhileIdle)
      Sets the default value for GenericObjectPool#getTestWhileIdle() for each per user pool.
      void setDefaultTimeBetweenEvictionRunsMillis​(long timeBetweenEvictionRunsMillis)
      Sets the default value for GenericObjectPool#getTimeBetweenEvictionRunsMillis () for each per user pool.
      void setDefaultTransactionIsolation​(int v)
      Set the value of defaultTransactionIsolation, which defines the state of connections handed out from this pool.
      void setDescription​(java.lang.String v)
      Set the description.
      void setJndiEnvironment​(java.lang.String key, java.lang.String value)
      Sets the value of the given JNDI environment property to be used when instantiating a JNDI InitialContext.
      void setLoginTimeout​(int v)
      Set the value of loginTimeout.
      void setLogWriter​(java.io.PrintWriter v)
      Set the value of logWriter.
      void setMaxConnLifetimeMillis​(long maxConnLifetimeMillis)
      Sets the maximum permitted lifetime of a connection in milliseconds.
      void setRollbackAfterValidation​(boolean rollbackAfterValidation)
      Whether a rollback will be issued after executing the SQL query that will be used to validate connections from this pool before returning them to the caller.
      void setValidationQuery​(java.lang.String validationQuery)
      The SQL query that will be used to validate connections from this pool before returning them to the caller.
      void setValidationQueryTimeout​(int validationQueryTimeout)
      Sets the timeout in seconds before the validation query fails.
      <T> T unwrap​(java.lang.Class<T> iface)  
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface javax.sql.CommonDataSource

        createShardingKeyBuilder
      • Methods inherited from interface javax.sql.DataSource

        createConnectionBuilder
      • Methods inherited from interface javax.naming.Referenceable

        getReference
    • Constructor Detail

      • InstanceKeyDataSource

        public InstanceKeyDataSource()
        Default no-arg constructor for Serialization
    • Method Detail

      • close

        public abstract void close()
                            throws java.lang.Exception
        Close the connection pool being maintained by this datasource.
        Specified by:
        close in interface java.lang.AutoCloseable
        Throws:
        java.lang.Exception
      • isWrapperFor

        public boolean isWrapperFor​(java.lang.Class<?> iface)
                             throws java.sql.SQLException
        Specified by:
        isWrapperFor in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • unwrap

        public <T> T unwrap​(java.lang.Class<T> iface)
                     throws java.sql.SQLException
        Specified by:
        unwrap in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • getParentLogger

        public java.util.logging.Logger getParentLogger()
                                                 throws java.sql.SQLFeatureNotSupportedException
        Specified by:
        getParentLogger in interface javax.sql.CommonDataSource
        Throws:
        java.sql.SQLFeatureNotSupportedException
      • getDefaultBlockWhenExhausted

        public boolean getDefaultBlockWhenExhausted()
        Gets the default value for BaseObjectPoolConfig.getBlockWhenExhausted() for each per user pool.
      • setDefaultBlockWhenExhausted

        public void setDefaultBlockWhenExhausted​(boolean blockWhenExhausted)
        Sets the default value for BaseObjectPoolConfig.getBlockWhenExhausted() for each per user pool.
      • getDefaultEvictionPolicyClassName

        public java.lang.String getDefaultEvictionPolicyClassName()
        Gets the default value for BaseObjectPoolConfig.getEvictionPolicyClassName() for each per user pool.
      • setDefaultEvictionPolicyClassName

        public void setDefaultEvictionPolicyClassName​(java.lang.String evictionPolicyClassName)
        Sets the default value for BaseObjectPoolConfig.getEvictionPolicyClassName() for each per user pool.
      • getDefaultLifo

        public boolean getDefaultLifo()
        Gets the default value for BaseObjectPoolConfig.getLifo() for each per user pool.
      • setDefaultLifo

        public void setDefaultLifo​(boolean lifo)
        Sets the default value for BaseObjectPoolConfig.getLifo() for each per user pool.
      • getDefaultMaxIdle

        public int getDefaultMaxIdle()
        Gets the default value for GenericKeyedObjectPoolConfig.getMaxIdlePerKey() for each per user pool.
      • setDefaultMaxIdle

        public void setDefaultMaxIdle​(int maxIdle)
        Sets the default value for GenericKeyedObjectPoolConfig.getMaxIdlePerKey() for each per user pool.
      • getDefaultMaxTotal

        public int getDefaultMaxTotal()
        Gets the default value for GenericKeyedObjectPoolConfig.getMaxTotalPerKey() for each per user pool.
      • setDefaultMaxTotal

        public void setDefaultMaxTotal​(int maxTotal)
        Sets the default value for GenericKeyedObjectPoolConfig.getMaxTotalPerKey() for each per user pool.
      • getDefaultMaxWaitMillis

        public long getDefaultMaxWaitMillis()
        Gets the default value for BaseObjectPoolConfig.getMaxWaitMillis() for each per user pool.
      • setDefaultMaxWaitMillis

        public void setDefaultMaxWaitMillis​(long maxWaitMillis)
        Sets the default value for BaseObjectPoolConfig.getMaxWaitMillis() for each per user pool.
      • getDefaultMinEvictableIdleTimeMillis

        public long getDefaultMinEvictableIdleTimeMillis()
        Gets the default value for BaseObjectPoolConfig.getMinEvictableIdleTimeMillis() for each per user pool.
      • setDefaultMinEvictableIdleTimeMillis

        public void setDefaultMinEvictableIdleTimeMillis​(long minEvictableIdleTimeMillis)
        Sets the default value for BaseObjectPoolConfig.getMinEvictableIdleTimeMillis() for each per user pool.
      • getDefaultMinIdle

        public int getDefaultMinIdle()
        Gets the default value for GenericKeyedObjectPoolConfig.getMinIdlePerKey() for each per user pool.
      • setDefaultMinIdle

        public void setDefaultMinIdle​(int minIdle)
        Sets the default value for GenericKeyedObjectPoolConfig.getMinIdlePerKey() for each per user pool.
      • getDefaultNumTestsPerEvictionRun

        public int getDefaultNumTestsPerEvictionRun()
        Gets the default value for BaseObjectPoolConfig.getNumTestsPerEvictionRun() for each per user pool.
      • setDefaultNumTestsPerEvictionRun

        public void setDefaultNumTestsPerEvictionRun​(int numTestsPerEvictionRun)
        Sets the default value for BaseObjectPoolConfig.getNumTestsPerEvictionRun() for each per user pool.
      • getDefaultSoftMinEvictableIdleTimeMillis

        public long getDefaultSoftMinEvictableIdleTimeMillis()
        Gets the default value for GenericObjectPool#getSoftMinEvictableIdleTimeMillis() for each per user pool.
      • setDefaultSoftMinEvictableIdleTimeMillis

        public void setDefaultSoftMinEvictableIdleTimeMillis​(long softMinEvictableIdleTimeMillis)
        Sets the default value for GenericObjectPool#getSoftMinEvictableIdleTimeMillis() for each per user pool.
      • getDefaultTestOnCreate

        public boolean getDefaultTestOnCreate()
        Gets the default value for GenericObjectPool#getTestOnCreate() for each per user pool.
      • setDefaultTestOnCreate

        public void setDefaultTestOnCreate​(boolean testOnCreate)
        Sets the default value for GenericObjectPool#getTestOnCreate() for each per user pool.
      • getDefaultTestOnBorrow

        public boolean getDefaultTestOnBorrow()
        Gets the default value for GenericObjectPool#getTestOnBorrow() for each per user pool.
      • setDefaultTestOnBorrow

        public void setDefaultTestOnBorrow​(boolean testOnBorrow)
        Sets the default value for GenericObjectPool#getTestOnBorrow() for each per user pool.
      • getDefaultTestOnReturn

        public boolean getDefaultTestOnReturn()
        Gets the default value for GenericObjectPool#getTestOnReturn() for each per user pool.
      • setDefaultTestOnReturn

        public void setDefaultTestOnReturn​(boolean testOnReturn)
        Sets the default value for GenericObjectPool#getTestOnReturn() for each per user pool.
      • getDefaultTestWhileIdle

        public boolean getDefaultTestWhileIdle()
        Gets the default value for GenericObjectPool#getTestWhileIdle() for each per user pool.
      • setDefaultTestWhileIdle

        public void setDefaultTestWhileIdle​(boolean testWhileIdle)
        Sets the default value for GenericObjectPool#getTestWhileIdle() for each per user pool.
      • getDefaultTimeBetweenEvictionRunsMillis

        public long getDefaultTimeBetweenEvictionRunsMillis()
        Gets the default value for GenericObjectPool#getTimeBetweenEvictionRunsMillis () for each per user pool.
      • setDefaultTimeBetweenEvictionRunsMillis

        public void setDefaultTimeBetweenEvictionRunsMillis​(long timeBetweenEvictionRunsMillis)
        Sets the default value for GenericObjectPool#getTimeBetweenEvictionRunsMillis () for each per user pool.
      • getConnectionPoolDataSource

        public javax.sql.ConnectionPoolDataSource getConnectionPoolDataSource()
        Get the value of connectionPoolDataSource. This method will return null, if the backing datasource is being accessed via jndi.
        Returns:
        value of connectionPoolDataSource.
      • setConnectionPoolDataSource

        public void setConnectionPoolDataSource​(javax.sql.ConnectionPoolDataSource v)
        Set the backend ConnectionPoolDataSource. This property should not be set if using jndi to access the datasource.
        Parameters:
        v - Value to assign to connectionPoolDataSource.
      • getDataSourceName

        public java.lang.String getDataSourceName()
        Get the name of the ConnectionPoolDataSource which backs this pool. This name is used to look up the datasource from a jndi service provider.
        Returns:
        value of dataSourceName.
      • setDataSourceName

        public void setDataSourceName​(java.lang.String v)
        Set the name of the ConnectionPoolDataSource which backs this pool. This name is used to look up the datasource from a jndi service provider.
        Parameters:
        v - Value to assign to dataSourceName.
      • isDefaultAutoCommit

        public java.lang.Boolean isDefaultAutoCommit()
        Get the value of defaultAutoCommit, which defines the state of connections handed out from this pool. The value can be changed on the Connection using Connection.setAutoCommit(boolean). The default is null which will use the default value for the drive.
        Returns:
        value of defaultAutoCommit.
      • setDefaultAutoCommit

        public void setDefaultAutoCommit​(java.lang.Boolean v)
        Set the value of defaultAutoCommit, which defines the state of connections handed out from this pool. The value can be changed on the Connection using Connection.setAutoCommit(boolean). The default is null which will use the default value for the drive.
        Parameters:
        v - Value to assign to defaultAutoCommit.
      • isDefaultReadOnly

        public java.lang.Boolean isDefaultReadOnly()
        Get the value of defaultReadOnly, which defines the state of connections handed out from this pool. The value can be changed on the Connection using Connection.setReadOnly(boolean). The default is null which will use the default value for the drive.
        Returns:
        value of defaultReadOnly.
      • setDefaultReadOnly

        public void setDefaultReadOnly​(java.lang.Boolean v)
        Set the value of defaultReadOnly, which defines the state of connections handed out from this pool. The value can be changed on the Connection using Connection.setReadOnly(boolean). The default is null which will use the default value for the drive.
        Parameters:
        v - Value to assign to defaultReadOnly.
      • getDefaultTransactionIsolation

        public int getDefaultTransactionIsolation()
        Get the value of defaultTransactionIsolation, which defines the state of connections handed out from this pool. The value can be changed on the Connection using Connection.setTransactionIsolation(int). If this method returns -1, the default is JDBC driver dependent.
        Returns:
        value of defaultTransactionIsolation.
      • setDefaultTransactionIsolation

        public void setDefaultTransactionIsolation​(int v)
        Set the value of defaultTransactionIsolation, which defines the state of connections handed out from this pool. The value can be changed on the Connection using Connection.setTransactionIsolation(int). The default is JDBC driver dependent.
        Parameters:
        v - Value to assign to defaultTransactionIsolation
      • getDescription

        public java.lang.String getDescription()
        Get the description. This property is defined by jdbc as for use with GUI (or other) tools that might deploy the datasource. It serves no internal purpose.
        Returns:
        value of description.
      • setDescription

        public void setDescription​(java.lang.String v)
        Set the description. This property is defined by jdbc as for use with GUI (or other) tools that might deploy the datasource. It serves no internal purpose.
        Parameters:
        v - Value to assign to description.
      • getJndiEnvironment

        public java.lang.String getJndiEnvironment​(java.lang.String key)
        Get the value of jndiEnvironment which is used when instantiating a jndi InitialContext. This InitialContext is used to locate the backend ConnectionPoolDataSource.
        Returns:
        value of jndiEnvironment.
      • setJndiEnvironment

        public void setJndiEnvironment​(java.lang.String key,
                                       java.lang.String value)
        Sets the value of the given JNDI environment property to be used when instantiating a JNDI InitialContext. This InitialContext is used to locate the backend ConnectionPoolDataSource.
        Parameters:
        key - the JNDI environment property to set.
        value - the value assigned to specified JNDI environment property.
      • getLoginTimeout

        public int getLoginTimeout()
        Get the value of loginTimeout.
        Specified by:
        getLoginTimeout in interface javax.sql.CommonDataSource
        Specified by:
        getLoginTimeout in interface javax.sql.DataSource
        Returns:
        value of loginTimeout.
      • setLoginTimeout

        public void setLoginTimeout​(int v)
        Set the value of loginTimeout.
        Specified by:
        setLoginTimeout in interface javax.sql.CommonDataSource
        Specified by:
        setLoginTimeout in interface javax.sql.DataSource
        Parameters:
        v - Value to assign to loginTimeout.
      • getLogWriter

        public java.io.PrintWriter getLogWriter()
        Get the value of logWriter.
        Specified by:
        getLogWriter in interface javax.sql.CommonDataSource
        Specified by:
        getLogWriter in interface javax.sql.DataSource
        Returns:
        value of logWriter.
      • setLogWriter

        public void setLogWriter​(java.io.PrintWriter v)
        Set the value of logWriter.
        Specified by:
        setLogWriter in interface javax.sql.CommonDataSource
        Specified by:
        setLogWriter in interface javax.sql.DataSource
        Parameters:
        v - Value to assign to logWriter.
      • getValidationQuery

        public java.lang.String getValidationQuery()
        The SQL query that will be used to validate connections from this pool before returning them to the caller. If specified, this query MUST be an SQL SELECT statement that returns at least one row. If not specified, Connection.isValid(int) will be used to validate connections.
      • setValidationQuery

        public void setValidationQuery​(java.lang.String validationQuery)
        The SQL query that will be used to validate connections from this pool before returning them to the caller. If specified, this query MUST be an SQL SELECT statement that returns at least one row. If not specified, connections will be validated using Connection.isValid(int).
      • getValidationQueryTimeout

        public int getValidationQueryTimeout()
        Returns the timeout in seconds before the validation query fails.
      • setValidationQueryTimeout

        public void setValidationQueryTimeout​(int validationQueryTimeout)
        Sets the timeout in seconds before the validation query fails.
        Parameters:
        validationQueryTimeout - The new timeout in seconds
      • isRollbackAfterValidation

        public boolean isRollbackAfterValidation()
        Whether a rollback will be issued after executing the SQL query that will be used to validate connections from this pool before returning them to the caller.
        Returns:
        true if a rollback will be issued after executing the validation query
      • setRollbackAfterValidation

        public void setRollbackAfterValidation​(boolean rollbackAfterValidation)
        Whether a rollback will be issued after executing the SQL query that will be used to validate connections from this pool before returning them to the caller. Default behavior is NOT to issue a rollback. The setting will only have an effect if a validation query is set
        Parameters:
        rollbackAfterValidation - new property value
      • getMaxConnLifetimeMillis

        public long getMaxConnLifetimeMillis()
        Returns the maximum permitted lifetime of a connection in milliseconds. A value of zero or less indicates an infinite lifetime.
      • setMaxConnLifetimeMillis

        public void setMaxConnLifetimeMillis​(long maxConnLifetimeMillis)

        Sets the maximum permitted lifetime of a connection in milliseconds. A value of zero or less indicates an infinite lifetime.

        Note: this method currently has no effect once the pool has been initialized. The pool is initialized the first time one of the following methods is invoked: getConnection, setLogwriter, setLoginTimeout, getLoginTimeout, getLogWriter.

      • getConnection

        public java.sql.Connection getConnection()
                                          throws java.sql.SQLException
        Attempt to establish a database connection.
        Specified by:
        getConnection in interface javax.sql.DataSource
        Throws:
        java.sql.SQLException
      • getConnection

        public java.sql.Connection getConnection​(java.lang.String username,
                                                 java.lang.String password)
                                          throws java.sql.SQLException
        Attempt to retrieve a database connection using getPooledConnectionAndInfo(String, String) with the provided username and password. The password on the PooledConnectionAndInfo instance returned by getPooledConnectionAndInfo is compared to the password parameter. If the comparison fails, a database connection using the supplied username and password is attempted. If the connection attempt fails, an SQLException is thrown, indicating that the given password did not match the password used to create the pooled connection. If the connection attempt succeeds, this means that the database password has been changed. In this case, the PooledConnectionAndInfo instance retrieved with the old password is destroyed and the getPooledConnectionAndInfo is repeatedly invoked until a PooledConnectionAndInfo instance with the new password is returned.
        Specified by:
        getConnection in interface javax.sql.DataSource
        Throws:
        java.sql.SQLException