org.apache.commons.dbcp2.datasources

## Class SharedPoolDataSource

- java.lang.Object
- - org.apache.commons.dbcp2.datasources.InstanceKeyDataSource
  - - org.apache.commons.dbcp2.datasources.SharedPoolDataSource

- All Implemented Interfaces:
    Serializable, AutoCloseable, Wrapper, Referenceable, CommonDataSource, DataSource

      public class SharedPoolDataSource
      extends InstanceKeyDataSource

  A pooling `DataSource` appropriate for deployment within J2EE environment. There are many configuration options, most of which are defined in the parent class. All users (based on username) share a single maximum number of Connections in this datasource.

  User passwords can be changed without re-initializing the datasource. When a `getConnection(username, password)` request is processed with a password that is different from those used to create connections in the pool associated with `username`, an attempt is made to create a new connection using the supplied password and if this succeeds, idle connections created using the old password are destroyed and new connections are created using the new password.

  Since:
    2.0
  Author:
    John D. McNally
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class org.apache.commons.dbcp2.datasources.InstanceKeyDataSource

      `UNKNOWN_TRANSACTIONISOLATION`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SharedPoolDataSource()` Default no-arg constructor for Serialization

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Close pool being maintained by this datasource.
    `protected org.apache.commons.dbcp2.datasources.PooledConnectionManager` | `getConnectionManager(org.apache.commons.dbcp2.datasources.UserPassKey upkey)`
    `int` | `getMaxTotal()` Set `BaseGenericObjectPool.getMaxTotal()` for this pool.
    `int` | `getNumActive()` Get the number of active connections in the pool.
    `int` | `getNumIdle()` Get the number of idle connections in the pool.
    `protected org.apache.commons.dbcp2.datasources.PooledConnectionAndInfo` | `getPooledConnectionAndInfo(String username, String password)`
    `Reference` | `getReference()` Returns a `SharedPoolDataSource` `Reference`.
    `void` | `setMaxTotal(int maxTotal)` Get `BaseGenericObjectPool.getMaxTotal()` for this pool.
    `protected void` | `setupDefaults(Connection con, String username)`

    - ### Methods inherited from class org.apache.commons.dbcp2.datasources.InstanceKeyDataSource

      `assertInitializationAllowed, getConnection, getConnection, getConnectionPoolDataSource, getDataSourceName, getDefaultBlockWhenExhausted, getDefaultEvictionPolicyClassName, getDefaultLifo, getDefaultMaxIdle, getDefaultMaxTotal, getDefaultMaxWaitMillis, getDefaultMinEvictableIdleTimeMillis, getDefaultMinIdle, getDefaultNumTestsPerEvictionRun, getDefaultSoftMinEvictableIdleTimeMillis, getDefaultTestOnBorrow, getDefaultTestOnCreate, getDefaultTestOnReturn, getDefaultTestWhileIdle, getDefaultTimeBetweenEvictionRunsMillis, getDefaultTransactionIsolation, getDescription, getInstanceKey, getJndiEnvironment, getLoginTimeout, getLogWriter, getMaxConnLifetimeMillis, getParentLogger, getValidationQuery, getValidationQueryTimeout, isDefaultAutoCommit, isDefaultReadOnly, isRollbackAfterValidation, isWrapperFor, setConnectionPoolDataSource, setDataSourceName, setDefaultAutoCommit, setDefaultBlockWhenExhausted, setDefaultEvictionPolicyClassName, setDefaultLifo, setDefaultMaxIdle, setDefaultMaxTotal, setDefaultMaxWaitMillis, setDefaultMinEvictableIdleTimeMillis, setDefaultMinIdle, setDefaultNumTestsPerEvictionRun, setDefaultReadOnly, setDefaultSoftMinEvictableIdleTimeMillis, setDefaultTestOnBorrow, setDefaultTestOnCreate, setDefaultTestOnReturn, setDefaultTestWhileIdle, setDefaultTimeBetweenEvictionRunsMillis, setDefaultTransactionIsolation, setDescription, setJndiEnvironment, setLoginTimeout, setLogWriter, setMaxConnLifetimeMillis, setRollbackAfterValidation, setValidationQuery, setValidationQueryTimeout, testCPDS, unwrap`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SharedPoolDataSource

          public SharedPoolDataSource()

      Default no-arg constructor for Serialization

  - ### Method Detail

    - #### close

          public void close()
                     throws Exception

      Close pool being maintained by this datasource.
      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in class `InstanceKeyDataSource`
      Throws:
        `Exception`

    - #### getMaxTotal

          public int getMaxTotal()

      Set `BaseGenericObjectPool.getMaxTotal()` for this pool.

    - #### setMaxTotal

          public void setMaxTotal(int maxTotal)

      Get `BaseGenericObjectPool.getMaxTotal()` for this pool.

    - #### getNumActive

          public int getNumActive()

      Get the number of active connections in the pool.

    - #### getNumIdle

          public int getNumIdle()

      Get the number of idle connections in the pool.

    - #### getPooledConnectionAndInfo

          protected org.apache.commons.dbcp2.datasources.PooledConnectionAndInfo getPooledConnectionAndInfo(String username,
                                                                                                            String password)
                                                                                                     throws SQLException

      Specified by:
        `getPooledConnectionAndInfo` in class `InstanceKeyDataSource`
      Throws:
        `SQLException`

    - #### getConnectionManager

          protected org.apache.commons.dbcp2.datasources.PooledConnectionManager getConnectionManager(org.apache.commons.dbcp2.datasources.UserPassKey upkey)

      Specified by:
        `getConnectionManager` in class `InstanceKeyDataSource`

    - #### getReference

          public Reference getReference()
                                 throws NamingException

      Returns a `SharedPoolDataSource` `Reference`.
      Throws:
        `NamingException`

    - #### setupDefaults

          protected void setupDefaults(Connection con,
                                       String username)
                                throws SQLException

      Specified by:
        `setupDefaults` in class `InstanceKeyDataSource`
      Throws:
        `SQLException`

Copyright © 2001–2018 The Apache Software Foundation. All rights reserved.