Class PerUserPoolDataSource
- All Implemented Interfaces:
Serializable, Wrapper, Referenceable, CommonDataSource, DataSource
A pooling DataSource appropriate for deployment within
J2EE environment. There are many configuration options, most of which are
defined in the parent class. This datasource uses individual pools per
user, and some properties can be set specifically for a given user, if the
deployment environment can support initialization of mapped properties.
So for example, a pool of admin or write-access Connections can be
guaranteed a certain number of connections, separate from a maximum
set for users with read-only connections.
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, the existing
pool is cleared and a new pool is created for connections 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:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Close pool(s) being maintained by this datasource.intThe maximum number of active connections that can be allocated from this pool at the same time, or non-positive for no limit.intThe maximum number of active connections that can remain idle in the pool, without extra ones being released, or negative for no limit.intThe 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.intGet the number of active connections in the default pool.intgetNumActive(String username, String password) Get the number of active connections in the pool for a given user.intGet the number of idle connections in the default pool.intgetNumIdle(String username, String password) Get the number of idle connections in the pool for a given user.The keys are usernames and the value is the --.getPerUserDefaultReadOnly(String username) The keys are usernames and the value is the --.getPerUserDefaultTransactionIsolation(String username) The isolation level of connections when returned from getConnection.getPerUserMaxActive(String username) The maximum number of active connections that can be allocated from this pool at the same time, or non-positive for no limit.getPerUserMaxIdle(String username) The maximum number of active connections that can remain idle in the pool, without extra ones being released, or negative for no limit.getPerUserMaxWait(String username) 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.Returns aPerUserPoolDataSourceReference.voidsetDefaultMaxActive(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.voidsetDefaultMaxIdle(int defaultMaxIdle) The maximum number of active connections that can remain idle in the pool, without extra ones being released, or negative for no limit.voidsetDefaultMaxWait(int defaultMaxWait) 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.voidsetPerUserDefaultAutoCommit(String username, Boolean value) The keys are usernames and the value is the --.voidsetPerUserDefaultReadOnly(String username, Boolean value) The keys are usernames and the value is the --.voidsetPerUserDefaultTransactionIsolation(String username, Integer value) The isolation level of connections when returned from getConnection.voidsetPerUserMaxActive(String username, Integer value) The maximum number of active connections that can be allocated from this pool at the same time, or non-positive for no limit.voidsetPerUserMaxIdle(String username, Integer value) The maximum number of active connections that can remain idle in the pool, without extra ones being released, or negative for no limit.voidsetPerUserMaxWait(String username, Integer value) 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.Methods inherited from class InstanceKeyDataSource
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, unwrapMethods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface CommonDataSource
createShardingKeyBuilderMethods inherited from interface DataSource
createConnectionBuilder
-
Constructor Details
-
PerUserPoolDataSource
public PerUserPoolDataSource()Default no-arg constructor for Serialization
-
-
Method Details
-
close
public void close()Close pool(s) being maintained by this datasource.- Specified by:
closein classInstanceKeyDataSource
-
getDefaultMaxActive
public int getDefaultMaxActive()The maximum number of active connections that can be allocated from this pool at the same time, or non-positive for no limit. This value is used for any username which is not specified in perUserMaxConnections. -
setDefaultMaxActive
public void setDefaultMaxActive(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. This value is used for any username which is not specified in perUserMaxConnections. The default is 8. -
getDefaultMaxIdle
public int getDefaultMaxIdle()The maximum number of active connections that can remain idle in the pool, without extra ones being released, or negative for no limit. This value is used for any username which is not specified in perUserMaxIdle. -
setDefaultMaxIdle
public void setDefaultMaxIdle(int defaultMaxIdle) The maximum number of active connections that can remain idle in the pool, without extra ones being released, or negative for no limit. This value is used for any username which is not specified in perUserMaxIdle. The default is 8. -
getDefaultMaxWait
public int getDefaultMaxWait()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. This value is used for any username which is not specified in perUserMaxWait. The default is -1. -
setDefaultMaxWait
public void setDefaultMaxWait(int defaultMaxWait) 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. This value is used for any username which is not specified in perUserMaxWait. The default is -1. -
getPerUserDefaultAutoCommit
-
setPerUserDefaultAutoCommit
-
getPerUserDefaultTransactionIsolation
-
setPerUserDefaultTransactionIsolation
-
getPerUserMaxActive
The maximum number of active connections that can be allocated from this pool at the same time, or non-positive for no limit. The keys are usernames and the value is the maximum connections. Any username specified here will override the value of defaultMaxActive. -
setPerUserMaxActive
The maximum number of active connections that can be allocated from this pool at the same time, or non-positive for no limit. The keys are usernames and the value is the maximum connections. Any username specified here will override the value of defaultMaxActive. -
getPerUserMaxIdle
The maximum number of active connections that can remain idle in the pool, without extra ones being released, or negative for no limit. The keys are usernames and the value is the maximum connections. Any username specified here will override the value of defaultMaxIdle. -
setPerUserMaxIdle
The maximum number of active connections that can remain idle in the pool, without extra ones being released, or negative for no limit. The keys are usernames and the value is the maximum connections. Any username specified here will override the value of defaultMaxIdle. -
getPerUserMaxWait
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 keys are usernames and the value is the maximum connections. Any username specified here will override the value of defaultMaxWait. -
setPerUserMaxWait
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 keys are usernames and the value is the maximum connections. Any username specified here will override the value of defaultMaxWait. -
getPerUserDefaultReadOnly
-
setPerUserDefaultReadOnly
-
getNumActive
public int getNumActive()Get the number of active connections in the default pool. -
getNumActive
-
getNumIdle
public int getNumIdle()Get the number of idle connections in the default pool. -
getNumIdle
-
getReference
Returns aPerUserPoolDataSourceReference.- Specified by:
getReferencein interfaceReferenceable- Overrides:
getReferencein classInstanceKeyDataSource- Returns:
- The non-null Reference of this object.
- Throws:
NamingException- If a naming exception was encountered while retrieving the reference.- Since:
- 1.2.2
-
getParentLogger
- Throws:
SQLFeatureNotSupportedException
-