org.apache.commons.dbcp.datasources
Class SharedPoolDataSource

java.lang.Object
  extended by org.apache.commons.dbcp.datasources.InstanceKeyDataSource
      extended by org.apache.commons.dbcp.datasources.SharedPoolDataSource
All Implemented Interfaces:
Serializable, 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.

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
SharedPoolDataSource()
          Default no-arg constructor for Serialization
 
Method Summary
 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.
protected  org.apache.commons.dbcp.datasources.PooledConnectionAndInfo getPooledConnectionAndInfo(String username, String password)
           
 Reference getReference()
          Returns a SharedPoolDataSource 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(Connection con, 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
 
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 class InstanceKeyDataSource
Throws:
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(String username,
                                                                                                 String password)
                                                                                          throws SQLException
Specified by:
getPooledConnectionAndInfo in class InstanceKeyDataSource
Throws:
SQLException

getConnectionManager

protected org.apache.commons.dbcp.datasources.PooledConnectionManager getConnectionManager(org.apache.commons.dbcp.datasources.UserPassKey upkey)
Specified by:
getConnectionManager in class InstanceKeyDataSource

getReference

public Reference getReference()
                       throws NamingException
Returns a SharedPoolDataSource Reference.

Specified by:
getReference in interface Referenceable
Overrides:
getReference in class InstanceKeyDataSource
Returns:
The non-null Reference of this object.
Throws:
NamingException - If a naming exception was encountered while retrieving the reference.
Since:
1.2.2

setupDefaults

protected void setupDefaults(Connection con,
                             String username)
                      throws SQLException
Specified by:
setupDefaults in class InstanceKeyDataSource
Throws:
SQLException


Copyright © 2001-2010 The Apache Software Foundation. All Rights Reserved.