Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
org.apache.commons.dbcp.datasources.InstanceKeyDataSource
public abstract class InstanceKeyDataSource
extends Object
implements DataSource, Referenceable, Serializable
SharedPoolDataSource
and
PerUserPoolDataSource
. Many of the configuration properties
are shared and defined here. This class is declared public in order
to allow particular usage with commons-beanutils; do not make direct
use of it outside of commons-dbcp.
A J2EE container will normally provide some method of initializing the
DataSource
whose attributes are presented
as bean getters/setters and then deploying it via JNDI. It is then
available to an application as a source of pooled logical connections to
the database. The pool needs a source of physical connections. This
source is in the form of a ConnectionPoolDataSource
that
can be specified via the setDataSourceName(String)
used to
lookup the source via JNDI.
Although normally used within a JNDI environment, A DataSource
can be instantiated and initialized as any bean. In this case the
ConnectionPoolDataSource
will likely be instantiated in
a similar manner. This class allows the physical source of connections
to be attached directly to this pool using the
setConnectionPoolDataSource(ConnectionPoolDataSource)
method.
The dbcp package contains an adapter,
DriverAdapterCPDS
,
that can be used to allow the use of DataSource
's based on this
class with jdbc driver implementations that do not supply a
ConnectionPoolDataSource
, but still
provide a java.sql.Driver
implementation.
The package documentation contains an
example using catalina and JNDI and it also contains a non-JNDI example.
Nested Class Summary |
Constructor Summary | |
|
Method Summary | |
void |
|
Connection |
|
Connection |
|
ConnectionPoolDataSource |
|
String |
|
int |
|
String |
|
String |
|
PrintWriter |
|
int |
|
int |
|
int |
|
Reference |
|
boolean |
|
boolean |
|
boolean |
|
int |
|
String |
|
boolean |
|
boolean |
|
boolean | |
boolean | |
boolean | |
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
public void close()
Close pool being maintained by this datasource.
public Connection getConnection() throws SQLException
Attempt to establish a database connection.
public Connection getConnection(java.lang.String username, java.lang.String password) throws SQLException
Attempt to establish a database connection.
public ConnectionPoolDataSource getConnectionPoolDataSource()
Get the value of connectionPoolDataSource. This method will return null, if the backing datasource is being accessed via jndi.
- Returns:
- value of connectionPoolDataSource.
public String getDataSourceName()
Get the name of the ConnectionPoolDataSource which backs this pool. This name is used to look up the datasource from a jndi service provider.
- Returns:
- value of dataSourceName.
public int getDefaultTransactionIsolation()
Get the value of defaultTransactionIsolation, which defines the state of connections handed out from this pool. The value can be changed on the Connection using Connection.setTransactionIsolation(int). If this method returns -1, the default is JDBC driver dependent.
- Returns:
- value of defaultTransactionIsolation.
public String getDescription()
Get the description. This property is defined by jdbc as for use with GUI (or other) tools that might deploy the datasource. It serves no internal purpose.
- Returns:
- value of description.
public String getJndiEnvironment(java.lang.String key)
Get the value of jndiEnvironment which is used when instantiating a jndi InitialContext. This InitialContext is used to locate the backend ConnectionPoolDataSource.
- Returns:
- value of jndiEnvironment.
public PrintWriter getLogWriter()
Get the value of logWriter.
- Returns:
- value of logWriter.
public int getLoginTimeout()
Get the value of loginTimeout.
- Returns:
- value of loginTimeout.
public int getMinEvictableIdleTimeMillis()
Returns the minimum amount of time an object may sit idle in the pool before it is eligable for eviction by the idle object evictor (if any).
public int getNumTestsPerEvictionRun()
Returns the number of objects to examine during each run of the idle object evictor thread (if any).
public Reference getReference() throws NamingException
Referenceable
implementation prepares object for binding in jndi.
public boolean getTestOnBorrow()
When true, objects will be {*link PoolableObjectFactory#validateObject validated} before being returned by the {*link #borrowObject} method. If the object fails to validate, it will be dropped from the pool, and we will attempt to borrow another.
- See Also:
setTestOnBorrow(boolean)
public boolean getTestOnReturn()
When true, objects will be {*link PoolableObjectFactory#validateObject validated} before being returned to the pool within the {*link #returnObject}.
- See Also:
setTestOnReturn(boolean)
public boolean getTestWhileIdle()
When true, objects will be {*link PoolableObjectFactory#validateObject validated} by the idle object evictor (if any). If an object fails to validate, it will be dropped from the pool.
public int getTimeBetweenEvictionRunsMillis()
Returns the number of milliseconds to sleep between runs of the idle object evictor thread. When non-positive, no idle object evictor thread will be run.
public String getValidationQuery()
The SQL query that will be used to validate connections from this pool before returning them to the caller. If specified, this query MUST be an SQL SELECT statement that returns at least one row.
public boolean isDefaultAutoCommit()
Get the value of defaultAutoCommit, which defines the state of connections handed out from this pool. The value can be changed on the Connection using Connection.setAutoCommit(boolean). The default is true.
- Returns:
- value of defaultAutoCommit.
public boolean isDefaultReadOnly()
Get the value of defaultReadOnly, which defines the state of connections handed out from this pool. The value can be changed on the Connection using Connection.setReadOnly(boolean). The default is false.
- Returns:
- value of defaultReadOnly.
public void setConnectionPoolDataSource(ConnectionPoolDataSource v)
Set the backend ConnectionPoolDataSource. This property should not be set if using jndi to access the datasource.
- Parameters:
v
- Value to assign to connectionPoolDataSource.
public void setDataSourceName(java.lang.String v)
Set the name of the ConnectionPoolDataSource which backs this pool. This name is used to look up the datasource from a jndi service provider.
- Parameters:
v
- Value to assign to dataSourceName.
public void setDefaultAutoCommit(boolean v)
Set the value of defaultAutoCommit, which defines the state of connections handed out from this pool. The value can be changed on the Connection using Connection.setAutoCommit(boolean). The default is true.
- Parameters:
v
- Value to assign to defaultAutoCommit.
public void setDefaultReadOnly(boolean v)
Set the value of defaultReadOnly, which defines the state of connections handed out from this pool. The value can be changed on the Connection using Connection.setReadOnly(boolean). The default is false.
- Parameters:
v
- Value to assign to defaultReadOnly.
public void setDefaultTransactionIsolation(int v)
Set the value of defaultTransactionIsolation, which defines the state of connections handed out from this pool. The value can be changed on the Connection using Connection.setTransactionIsolation(int). The default is JDBC driver dependent.
- Parameters:
v
- Value to assign to defaultTransactionIsolation
public void setDescription(java.lang.String v)
Set the description. This property is defined by jdbc as for use with GUI (or other) tools that might deploy the datasource. It serves no internal purpose.
- Parameters:
v
- Value to assign to description.
public void setJndiEnvironment(java.lang.String key, java.lang.String value)
Set the value of jndiEnvironment which is used when instantiating a jndi InitialContext. This InitialContext is used to locate the backend ConnectionPoolDataSource.
- Parameters:
public void setLogWriter(PrintWriter v)
Set the value of logWriter.
- Parameters:
v
- Value to assign to logWriter.
public void setLoginTimeout(int v)
Set the value of loginTimeout.
- Parameters:
v
- Value to assign to loginTimeout.
public void setMinEvictableIdleTimeMillis(int minEvictableIdleTimeMillis)
Sets the minimum amount of time an object may sit idle in the pool before it is eligable for eviction by the idle object evictor (if any). When non-positive, no objects will be evicted from the pool due to idle time alone.
public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun)
Sets the number of objects to examine during each run of the idle object evictor thread (if any). When a negative value is supplied, ceil({*link #numIdle})/abs({*link #getNumTestsPerEvictionRun}) tests will be run. I.e., when the value is -n, roughly one nth of the idle objects will be tested per run.
public void setTestOnBorrow(boolean testOnBorrow)
When true, objects will be {*link PoolableObjectFactory#validateObject validated} before being returned by the {*link #borrowObject} method. If the object fails to validate, it will be dropped from the pool, and we will attempt to borrow another.
- See Also:
getTestOnBorrow()
public void setTestOnReturn(boolean testOnReturn)
When true, objects will be {*link PoolableObjectFactory#validateObject validated} before being returned to the pool within the {*link #returnObject}.
- See Also:
getTestOnReturn()
public void setTestWhileIdle(boolean testWhileIdle)
When true, objects will be {*link PoolableObjectFactory#validateObject validated} by the idle object evictor (if any). If an object fails to validate, it will be dropped from the pool.
public void setTimeBetweenEvictionRunsMillis(int timeBetweenEvictionRunsMillis)
Sets the number of milliseconds to sleep between runs of the idle object evictor thread. When non-positive, no idle object evictor thread will be run.
- See Also:
getTimeBetweenEvictionRunsMillis()
public void setValidationQuery(java.lang.String validationQuery)
The SQL query that will be used to validate connections from this pool before returning them to the caller. If specified, this query MUST be an SQL SELECT statement that returns at least one row. Default behavior is to test the connection when it is borrowed.