org.apache.commons.dbcp.datasources

Class PerUserPoolDataSource

Implemented Interfaces:
DataSource, Referenceable, Serializable

public class PerUserPoolDataSource
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. 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.
Version:
$Revision: 1.10 $ $Date: 2004/02/28 12:18:17 $
Author:
John D. McNally

Constructor Summary

PerUserPoolDataSource()
Default no-arg constructor for Serialization

Method Summary

void
close()
Close pool(s) being maintained by this datasource.
int
getDefaultMaxActive()
The maximum number of active connections that can be allocated from this pool at the same time, or zero for no limit.
int
getDefaultMaxIdle()
The maximum number of active connections that can remain idle in the pool, without extra ones being released, or zero for no limit.
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.
int
getNumActive()
Get the number of active connections in the default pool.
int
getNumActive(String username, String password)
Get the number of active connections in the pool for a given user.
int
getNumIdle()
Get the number of idle connections in the default pool.
int
getNumIdle(String username, String password)
Get the number of idle connections in the pool for a given user.
Boolean
getPerUserDefaultAutoCommit(String key)
The keys are usernames and the value is the --.
Boolean
getPerUserDefaultReadOnly(String username)
The keys are usernames and the value is the --.
Integer
getPerUserDefaultTransactionIsolation(String username)
The isolation level of connections when returned from getConnection.
Integer
getPerUserMaxActive(String username)
The maximum number of active connections that can be allocated from this pool at the same time, or zero for no limit.
Integer
getPerUserMaxIdle(String username)
The maximum number of active connections that can remain idle in the pool, without extra ones being released, or zero for no limit.
Integer
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.
void
setDefaultMaxActive(int maxActive)
The maximum number of active connections that can be allocated from this pool at the same time, or zero for no limit.
void
setDefaultMaxIdle(int defaultMaxIdle)
The maximum number of active connections that can remain idle in the pool, without extra ones being released, or zero for no limit.
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.
void
setPerUserDefaultAutoCommit(String username, Boolean value)
The keys are usernames and the value is the --.
void
setPerUserDefaultReadOnly(String username, Boolean value)
The keys are usernames and the value is the --.
void
setPerUserDefaultTransactionIsolation(String username, Integer value)
The isolation level of connections when returned from getConnection.
void
setPerUserMaxActive(String username, Integer value)
The maximum number of active connections that can be allocated from this pool at the same time, or zero for no limit.
void
setPerUserMaxIdle(String username, Integer value)
The maximum number of active connections that can remain idle in the pool, without extra ones being released, or zero for no limit.
void
setPerUserMaxWait(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 org.apache.commons.dbcp.datasources.InstanceKeyDataSource

close, getConnection, getConnection, getConnectionPoolDataSource, getDataSourceName, getDefaultTransactionIsolation, getDescription, getJndiEnvironment, getLogWriter, getLoginTimeout, getMinEvictableIdleTimeMillis, getNumTestsPerEvictionRun, getReference, getTestOnBorrow, getTestOnReturn, getTestWhileIdle, getTimeBetweenEvictionRunsMillis, getValidationQuery, isDefaultAutoCommit, isDefaultReadOnly, isTestOnBorrow, isTestOnReturn, isTestWhileIdle, setConnectionPoolDataSource, setDataSourceName, setDefaultAutoCommit, setDefaultReadOnly, setDefaultTransactionIsolation, setDescription, setJndiEnvironment, setLogWriter, setLoginTimeout, setMinEvictableIdleTimeMillis, setNumTestsPerEvictionRun, setTestOnBorrow, setTestOnReturn, setTestWhileIdle, setTimeBetweenEvictionRunsMillis, setValidationQuery

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.
Overrides:
close in interface InstanceKeyDataSource

getDefaultMaxActive

public int getDefaultMaxActive()
The maximum number of active connections that can be allocated from this pool at the same time, or zero for no limit. This value is used for any username which is not specified in perUserMaxConnections. The default is 0.

getDefaultMaxIdle

public int getDefaultMaxIdle()
The maximum number of active connections that can remain idle in the pool, without extra ones being released, or zero for no limit. This value is used for any username which is not specified in perUserMaxIdle. The default is 0.

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.

getNumActive

public int getNumActive()
Get the number of active connections in the default pool.

getNumActive

public int getNumActive(String username,
                        String password)
Get the number of active connections in the pool for a given user.

getNumIdle

public int getNumIdle()
Get the number of idle connections in the default pool.

getNumIdle

public int getNumIdle(String username,
                      String password)
Get the number of idle connections in the pool for a given user.

getPerUserDefaultAutoCommit

public Boolean getPerUserDefaultAutoCommit(String key)
The keys are usernames and the value is the --. Any username specified here will override the value of defaultAutoCommit.

getPerUserDefaultReadOnly

public Boolean getPerUserDefaultReadOnly(String username)
The keys are usernames and the value is the --. Any username specified here will override the value of defaultReadOnly.

getPerUserDefaultTransactionIsolation

public Integer getPerUserDefaultTransactionIsolation(String username)
The isolation level of connections when returned from getConnection. If null, the username will use the value of defaultTransactionIsolation.

getPerUserMaxActive

public Integer getPerUserMaxActive(String username)
The maximum number of active connections that can be allocated from this pool at the same time, or zero 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

public Integer getPerUserMaxIdle(String username)
The maximum number of active connections that can remain idle in the pool, without extra ones being released, or zero 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

public Integer 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. 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.

setDefaultMaxActive

public void setDefaultMaxActive(int maxActive)
The maximum number of active connections that can be allocated from this pool at the same time, or zero for no limit. This value is used for any username which is not specified in perUserMaxConnections. The default is 0.

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 zero for no limit. This value is used for any username which is not specified in perUserMaxIdle. The default is 0.

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.

setPerUserDefaultAutoCommit

public void setPerUserDefaultAutoCommit(String username,
                                        Boolean value)
The keys are usernames and the value is the --. Any username specified here will override the value of defaultAutoCommit.

setPerUserDefaultReadOnly

public void setPerUserDefaultReadOnly(String username,
                                      Boolean value)
The keys are usernames and the value is the --. Any username specified here will override the value of defaultReadOnly.

setPerUserDefaultTransactionIsolation

public void setPerUserDefaultTransactionIsolation(String username,
                                                  Integer value)
The isolation level of connections when returned from getConnection. Valid values are the constants defined in Connection.

setPerUserMaxActive

public void setPerUserMaxActive(String username,
                                Integer value)
The maximum number of active connections that can be allocated from this pool at the same time, or zero for no limit. The keys are usernames and the value is the maximum connections. Any username specified here will override the value of defaultMaxActive.

setPerUserMaxIdle

public void setPerUserMaxIdle(String username,
                              Integer value)
The maximum number of active connections that can remain idle in the pool, without extra ones being released, or zero for no limit. The keys are usernames and the value is the maximum connections. Any username specified here will override the value of defaultMaxIdle.

setPerUserMaxWait

public void setPerUserMaxWait(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. 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.

Copyright © 2001-2003 Apache Software Foundation. Documenation generated December 22 2005.