Class SharedPoolDataSource
- java.lang.Object
-
- org.apache.tomcat.dbcp.dbcp2.datasources.InstanceKeyDataSource
-
- org.apache.tomcat.dbcp.dbcp2.datasources.SharedPoolDataSource
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.AutoCloseable,java.sql.Wrapper,javax.naming.Referenceable,javax.sql.CommonDataSource,javax.sql.DataSource
public class SharedPoolDataSource extends InstanceKeyDataSource
A pooling
DataSourceappropriate for deployment within J2EE environment. There are many configuration options, most of which are defined in the parent class. All users (based on user name) share a single maximum number of Connections in this data source.User passwords can be changed without re-initializing the data source. When a
getConnection(user name, password)request is processed with a password that is different from those used to create connections in the pool associated withuser name, 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
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.apache.tomcat.dbcp.dbcp2.datasources.InstanceKeyDataSource
UNKNOWN_TRANSACTIONISOLATION
-
-
Constructor Summary
Constructors Constructor Description SharedPoolDataSource()Default no-argument constructor for Serialization
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Closes pool being maintained by this data source.protected org.apache.tomcat.dbcp.dbcp2.datasources.PooledConnectionManagergetConnectionManager(org.apache.tomcat.dbcp.dbcp2.datasources.UserPassKey userPassKey)intgetMaxTotal()GetsBaseGenericObjectPool.getMaxTotal()for this pool.intgetNumActive()Gets the number of active connections in the pool.intgetNumIdle()Gets the number of idle connections in the pool.protected org.apache.tomcat.dbcp.dbcp2.datasources.PooledConnectionAndInfogetPooledConnectionAndInfo(java.lang.String userName, java.lang.String userPassword)This method is protected but can only be implemented in this package because PooledConnectionAndInfo is a package private type.javax.naming.ReferencegetReference()Creates a newReferenceto aSharedPoolDataSource.voidsetMaxTotal(int maxTotal)SetsBaseGenericObjectPool.getMaxTotal()for this pool.protected voidsetupDefaults(java.sql.Connection connection, java.lang.String userName)protected voidtoStringFields(java.lang.StringBuilder builder)-
Methods inherited from class org.apache.tomcat.dbcp.dbcp2.datasources.InstanceKeyDataSource
assertInitializationAllowed, getConnection, getConnection, getConnectionPoolDataSource, getDataSourceName, getDefaultBlockWhenExhausted, getDefaultDurationBetweenEvictionRuns, getDefaultEvictionPolicyClassName, getDefaultLifo, getDefaultMaxIdle, getDefaultMaxTotal, getDefaultMaxWait, getDefaultMaxWaitMillis, getDefaultMinEvictableIdleDuration, getDefaultMinEvictableIdleTimeMillis, getDefaultMinIdle, getDefaultNumTestsPerEvictionRun, getDefaultSoftMinEvictableIdleDuration, getDefaultSoftMinEvictableIdleTimeMillis, getDefaultTestOnBorrow, getDefaultTestOnCreate, getDefaultTestOnReturn, getDefaultTestWhileIdle, getDefaultTimeBetweenEvictionRunsMillis, getDefaultTransactionIsolation, getDescription, getInstanceKey, getJndiEnvironment, getLoginTimeout, getLoginTimeoutDuration, getLogWriter, getMaxConnDuration, getMaxConnLifetime, getMaxConnLifetimeMillis, getParentLogger, getValidationQuery, getValidationQueryTimeout, getValidationQueryTimeoutDuration, isDefaultAutoCommit, isDefaultReadOnly, isRollbackAfterValidation, isWrapperFor, setConnectionPoolDataSource, setDataSourceName, setDefaultAutoCommit, setDefaultBlockWhenExhausted, setDefaultDurationBetweenEvictionRuns, setDefaultEvictionPolicyClassName, setDefaultLifo, setDefaultMaxIdle, setDefaultMaxTotal, setDefaultMaxWait, setDefaultMaxWaitMillis, setDefaultMinEvictableIdle, setDefaultMinEvictableIdleTimeMillis, setDefaultMinIdle, setDefaultNumTestsPerEvictionRun, setDefaultReadOnly, setDefaultSoftMinEvictableIdle, setDefaultSoftMinEvictableIdleTimeMillis, setDefaultTestOnBorrow, setDefaultTestOnCreate, setDefaultTestOnReturn, setDefaultTestWhileIdle, setDefaultTimeBetweenEvictionRunsMillis, setDefaultTransactionIsolation, setDescription, setJndiEnvironment, setLoginTimeout, setLoginTimeout, setLogWriter, setMaxConnLifetime, setMaxConnLifetimeMillis, setRollbackAfterValidation, setValidationQuery, setValidationQueryTimeout, setValidationQueryTimeout, testCPDS, toString, unwrap
-
-
-
-
Method Detail
-
close
public void close() throws java.lang.ExceptionCloses pool being maintained by this data source.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein classInstanceKeyDataSource- Throws:
java.lang.Exception
-
getConnectionManager
protected org.apache.tomcat.dbcp.dbcp2.datasources.PooledConnectionManager getConnectionManager(org.apache.tomcat.dbcp.dbcp2.datasources.UserPassKey userPassKey)
- Specified by:
getConnectionManagerin classInstanceKeyDataSource
-
getMaxTotal
public int getMaxTotal()
GetsBaseGenericObjectPool.getMaxTotal()for this pool.- Returns:
BaseGenericObjectPool.getMaxTotal()for this pool.
-
getNumActive
public int getNumActive()
Gets the number of active connections in the pool.- Returns:
- The number of active connections in the pool.
-
getNumIdle
public int getNumIdle()
Gets the number of idle connections in the pool.- Returns:
- The number of idle connections in the pool.
-
getPooledConnectionAndInfo
protected org.apache.tomcat.dbcp.dbcp2.datasources.PooledConnectionAndInfo getPooledConnectionAndInfo(java.lang.String userName, java.lang.String userPassword) throws java.sql.SQLExceptionDescription copied from class:InstanceKeyDataSourceThis method is protected but can only be implemented in this package because PooledConnectionAndInfo is a package private type.- Specified by:
getPooledConnectionAndInfoin classInstanceKeyDataSource- Parameters:
userName- The user name.userPassword- The user password.- Returns:
- Matching PooledConnectionAndInfo.
- Throws:
java.sql.SQLException- Connection or registration failure.
-
getReference
public javax.naming.Reference getReference() throws javax.naming.NamingExceptionCreates a newReferenceto aSharedPoolDataSource.- Throws:
javax.naming.NamingException
-
setMaxTotal
public void setMaxTotal(int maxTotal)
SetsBaseGenericObjectPool.getMaxTotal()for this pool.- Parameters:
maxTotal-BaseGenericObjectPool.getMaxTotal()for this pool.
-
setupDefaults
protected void setupDefaults(java.sql.Connection connection, java.lang.String userName) throws java.sql.SQLException- Specified by:
setupDefaultsin classInstanceKeyDataSource- Throws:
java.sql.SQLException
-
toStringFields
protected void toStringFields(java.lang.StringBuilder builder)
- Overrides:
toStringFieldsin classInstanceKeyDataSource
-
-