Class SharedPoolDataSource
- java.lang.Object
-
- org.apache.commons.dbcp.datasources.InstanceKeyDataSource
-
- org.apache.commons.dbcp.datasources.SharedPoolDataSource
-
- All Implemented Interfaces:
java.io.Serializable
,java.sql.Wrapper
,javax.naming.Referenceable
,javax.sql.CommonDataSource
,javax.sql.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 withusername
, 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.- Version:
- $Revision: 907288 $ $Date: 2010-02-06 14:42:58 -0500 (Sat, 06 Feb 2010) $
- Author:
- John D. McNally
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.apache.commons.dbcp.datasources.InstanceKeyDataSource
instanceKey, UNKNOWN_TRANSACTIONISOLATION
-
-
Constructor Summary
Constructors Constructor Description SharedPoolDataSource()
Default no-arg constructor for Serialization
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Close pool being maintained by this datasource.protected org.apache.commons.dbcp.datasources.PooledConnectionManager
getConnectionManager(org.apache.commons.dbcp.datasources.UserPassKey upkey)
int
getMaxActive()
The maximum number of active connections that can be allocated from this pool at the same time, or non-positive for no limit.int
getMaxIdle()
The maximum number of active connections that can remain idle in the pool, without extra ones being released, or negative for no limit.int
getMaxWait()
The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception, or -1 to wait indefinitely.int
getNumActive()
Get the number of active connections in the pool.int
getNumIdle()
Get the number of idle connections in the pool.java.util.logging.Logger
getParentLogger()
protected org.apache.commons.dbcp.datasources.PooledConnectionAndInfo
getPooledConnectionAndInfo(java.lang.String username, java.lang.String password)
javax.naming.Reference
getReference()
Returns aSharedPoolDataSource
Reference
.void
setMaxActive(int maxActive)
The maximum number of active connections that can be allocated from this pool at the same time, or non-positive for no limit.void
setMaxIdle(int maxIdle)
The maximum number of active connections that can remain idle in the pool, without extra ones being released, or negative for no limit.void
setMaxWait(int maxWait)
The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception, or -1 to wait indefinitely.protected void
setupDefaults(java.sql.Connection con, java.lang.String username)
-
Methods inherited from class org.apache.commons.dbcp.datasources.InstanceKeyDataSource
assertInitializationAllowed, getConnection, getConnection, getConnectionPoolDataSource, getDataSourceName, getDefaultTransactionIsolation, getDescription, getJndiEnvironment, getLoginTimeout, getLogWriter, getMinEvictableIdleTimeMillis, getNumTestsPerEvictionRun, getTestOnBorrow, getTestOnReturn, getTestWhileIdle, getTimeBetweenEvictionRunsMillis, getValidationQuery, isDefaultAutoCommit, isDefaultReadOnly, isRollbackAfterValidation, isTestOnBorrow, isTestOnReturn, isTestWhileIdle, isWrapperFor, setConnectionPoolDataSource, setDataSourceName, setDefaultAutoCommit, setDefaultReadOnly, setDefaultTransactionIsolation, setDescription, setJndiEnvironment, setLoginTimeout, setLogWriter, setMinEvictableIdleTimeMillis, setNumTestsPerEvictionRun, setRollbackAfterValidation, setTestOnBorrow, setTestOnReturn, setTestWhileIdle, setTimeBetweenEvictionRunsMillis, setValidationQuery, testCPDS, unwrap, whenExhaustedAction
-
-
-
-
Method Detail
-
close
public void close() throws java.lang.Exception
Close pool being maintained by this datasource.- Specified by:
close
in classInstanceKeyDataSource
- Throws:
java.lang.Exception
-
getMaxActive
public int getMaxActive()
The maximum number of active connections that can be allocated from this pool at the same time, or non-positive for no limit.
-
setMaxActive
public void setMaxActive(int maxActive)
The maximum number of active connections that can be allocated from this pool at the same time, or non-positive for no limit. The default is 8.
-
getMaxIdle
public int getMaxIdle()
The maximum number of active connections that can remain idle in the pool, without extra ones being released, or negative for no limit.
-
setMaxIdle
public void setMaxIdle(int maxIdle)
The maximum number of active connections that can remain idle in the pool, without extra ones being released, or negative for no limit. The default is 8.
-
getMaxWait
public int getMaxWait()
The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception, or -1 to wait indefinitely. Will fail immediately if value is 0. The default is -1.
-
setMaxWait
public void setMaxWait(int maxWait)
The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception, or -1 to wait indefinitely. Will fail immediately if value is 0. The default is -1.
-
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.dbcp.datasources.PooledConnectionAndInfo getPooledConnectionAndInfo(java.lang.String username, java.lang.String password) throws java.sql.SQLException
- Specified by:
getPooledConnectionAndInfo
in classInstanceKeyDataSource
- Throws:
java.sql.SQLException
-
getConnectionManager
protected org.apache.commons.dbcp.datasources.PooledConnectionManager getConnectionManager(org.apache.commons.dbcp.datasources.UserPassKey upkey)
- Specified by:
getConnectionManager
in classInstanceKeyDataSource
-
getReference
public javax.naming.Reference getReference() throws javax.naming.NamingException
Returns aSharedPoolDataSource
Reference
.- Specified by:
getReference
in interfacejavax.naming.Referenceable
- Overrides:
getReference
in classInstanceKeyDataSource
- Returns:
- The non-null Reference of this object.
- Throws:
javax.naming.NamingException
- If a naming exception was encountered while retrieving the reference.- Since:
- 1.2.2
-
setupDefaults
protected void setupDefaults(java.sql.Connection con, java.lang.String username) throws java.sql.SQLException
- Specified by:
setupDefaults
in classInstanceKeyDataSource
- Throws:
java.sql.SQLException
-
getParentLogger
public java.util.logging.Logger getParentLogger() throws java.sql.SQLFeatureNotSupportedException
- Throws:
java.sql.SQLFeatureNotSupportedException
-
-