org.apache.commons.dbcp.cpdsadapter
Class DriverAdapterCPDS

java.lang.Object
  |
  +--org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS
All Implemented Interfaces:
javax.sql.ConnectionPoolDataSource, javax.naming.spi.ObjectFactory, javax.naming.Referenceable, java.io.Serializable

public class DriverAdapterCPDS
extends java.lang.Object
implements javax.sql.ConnectionPoolDataSource, javax.naming.Referenceable, java.io.Serializable, javax.naming.spi.ObjectFactory

An adapter for jdbc drivers that do not include an implementation of ConnectionPoolDataSource, but still include a DriverManager implementation. ConnectionPoolDataSources are not used within general applications. They are used by DataSource implementations that pool Connections, such as org.apache.commons.dbcp.jdbc2pool.Jdbc2PoolDataSource. A J2EE container will normally provide some method of initializing the ConnectionPoolDataSource whose attributes are presented as bean getters/setters and then deploying it via JNDI. It is then available as a source of physical connections to the database, when the pooling DataSource needs to create a new physical connection.

Although normally used within a JNDI environment, the DriverAdapterCPDS can be instantiated and initialized as any bean and then attached directly to a pooling DataSource. Jdbc2PoolDataSource can use the ConnectionPoolDataSource with or without the use of JNDI.

The DriverAdapterCPDS also provides PreparedStatement pooling which is not generally available in jbdc2 ConnectionPoolDataSource implementation, but is addressed within the jdbc3 specification. The PreparedStatement pool in DriverAdapterCPDS has been in the dbcp package for some time, but it has not undergone extensive testing in the configuration used here. It should be considered experimental and can be toggled with the poolPreparedStatements attribute.

The package documentation contains an example using catalina and JNDI. The jdbc2pool package documentation shows how to use DriverAdapterCPDS as a source for Jdbc2PoolDataSource without the use of JNDI.

Version:
$Id: DriverAdapterCPDS.java,v 1.1 2002/08/05 06:42:01 jmcnally Exp $
Author:
John D. McNally
See Also:
Serialized Form

Constructor Summary
DriverAdapterCPDS()
          Default no-arg constructor for Serialization
 
Method Summary
 java.lang.String getDescription()
          Get the value of description.
 java.lang.String getDriver()
          Get the driver classname.
 int getLoginTimeout()
          Gets the maximum time in seconds that this data source can wait while attempting to connect to a database.
 java.io.PrintWriter getLogWriter()
          Get the log writer for this data source.
 int getMaxActive()
          The maximum number of active statements that can be allocated from this pool at the same time, or zero for no limit.
 int getMaxIdle()
          The maximum number of statements that can remain idle in the pool, without extra ones being released, or zero for no limit.
 int getMinEvictableIdleTimeMillis()
          Returns the minimum amount of time a statement may sit idle in the pool before it is eligible for eviction by the idle object evictor (if any).
 int getNumTestsPerEvictionRun()
          Returns the number of statements to examine during each run of the idle object evictor thread (if any).
 java.lang.Object getObjectInstance(java.lang.Object refObj, javax.naming.Name name, javax.naming.Context context, java.util.Hashtable env)
          implements ObjectFactory to create an instance of this class
 java.lang.String getPassword()
          Get the value of password for the default user.
 javax.sql.PooledConnection getPooledConnection()
          Attempt to establish a database connection using the default user and password.
 javax.sql.PooledConnection getPooledConnection(java.lang.String username, java.lang.String password)
          Attempt to establish a database connection.
 javax.naming.Reference getReference()
          Referenceable implementation.
 int getTimeBetweenEvictionRunsMillis()
          Returns the number of milliseconds to sleep between runs of the idle object evictor thread.
 java.lang.String getUrl()
          Get the value of url used to locate the database for this datasource.
 java.lang.String getUser()
          Get the value of default user (login or username).
 boolean isPoolPreparedStatements()
          Flag to toggle the pooling of PreparedStatements
 void setDescription(java.lang.String v)
          Set the value of description.
 void setDriver(java.lang.String v)
          Set the driver classname.
 void setLoginTimeout(int seconds)
          Sets the maximum time in seconds that this data source will wait while attempting to connect to a database.
 void setLogWriter(java.io.PrintWriter out)
          Set the log writer for this data source.
 void setMaxActive(int maxActive)
          The maximum number of active statements that can be allocated from this pool at the same time, or zero for no limit.
 void setMaxIdle(int maxIdle)
          The maximum number of statements that can remain idle in the pool, without extra ones being released, or zero for no limit.
 void setMinEvictableIdleTimeMillis(int minEvictableIdleTimeMillis)
          Sets the minimum amount of time a statement may sit idle in the pool before it is eligable for eviction by the idle object evictor (if any).
 void setNumTestsPerEvictionRun(int numTestsPerEvictionRun)
          Sets the number of statements to examine during each run of the idle object evictor thread (if any).
 void setPassword(java.lang.String v)
          Set the value of password for the default user.
 void setPoolPreparedStatements(boolean v)
          Flag to toggle the pooling of PreparedStatements
 void setTimeBetweenEvictionRunsMillis(int timeBetweenEvictionRunsMillis)
          Sets the number of milliseconds to sleep between runs of the idle object evictor thread.
 void setUrl(java.lang.String v)
          Set the value of url used to locate the database for this datasource.
 void setUser(java.lang.String v)
          Set the value of default user (login or username).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DriverAdapterCPDS

public DriverAdapterCPDS()
Default no-arg constructor for Serialization

Method Detail

getDescription

public java.lang.String getDescription()
Get the value of description. This property is here for use by the code which will deploy this datasource. It is not used internally.

Returns:
value of description.

getDriver

public java.lang.String getDriver()
Get the driver classname.

Returns:
value of driver.

getLoginTimeout

public int getLoginTimeout()
Gets the maximum time in seconds that this data source can wait while attempting to connect to a database. NOT USED.

Specified by:
getLoginTimeout in interface javax.sql.ConnectionPoolDataSource

getLogWriter

public java.io.PrintWriter getLogWriter()
Get the log writer for this data source. NOT USED.

Specified by:
getLogWriter in interface javax.sql.ConnectionPoolDataSource

getMaxActive

public int getMaxActive()
The maximum number of active statements that can be allocated from this pool at the same time, or zero for no limit.


getMaxIdle

public int getMaxIdle()
The maximum number of statements that can remain idle in the pool, without extra ones being released, or zero for no limit.


getMinEvictableIdleTimeMillis

public int getMinEvictableIdleTimeMillis()
Returns the minimum amount of time a statement may sit idle in the pool before it is eligible for eviction by the idle object evictor (if any). *see #setMinEvictableIdleTimeMillis *see #setTimeBetweenEvictionRunsMillis


getNumTestsPerEvictionRun

public int getNumTestsPerEvictionRun()
Returns the number of statements to examine during each run of the idle object evictor thread (if any). *see #setNumTestsPerEvictionRun *see #setTimeBetweenEvictionRunsMillis


getObjectInstance

public java.lang.Object getObjectInstance(java.lang.Object refObj,
                                          javax.naming.Name name,
                                          javax.naming.Context context,
                                          java.util.Hashtable env)
                                   throws java.lang.Exception
implements ObjectFactory to create an instance of this class

Specified by:
getObjectInstance in interface javax.naming.spi.ObjectFactory
java.lang.Exception

getPassword

public java.lang.String getPassword()
Get the value of password for the default user.

Returns:
value of password.

getPooledConnection

public javax.sql.PooledConnection getPooledConnection()
                                               throws java.sql.SQLException
Attempt to establish a database connection using the default user and password.

Specified by:
getPooledConnection in interface javax.sql.ConnectionPoolDataSource
java.sql.SQLException

getPooledConnection

public javax.sql.PooledConnection getPooledConnection(java.lang.String username,
                                                      java.lang.String password)
                                               throws java.sql.SQLException
Attempt to establish a database connection.

Specified by:
getPooledConnection in interface javax.sql.ConnectionPoolDataSource
java.sql.SQLException

getReference

public javax.naming.Reference getReference()
                                    throws javax.naming.NamingException
Referenceable implementation.

Specified by:
getReference in interface javax.naming.Referenceable
javax.naming.NamingException

getTimeBetweenEvictionRunsMillis

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. *see #setTimeBetweenEvictionRunsMillis


getUrl

public java.lang.String getUrl()
Get the value of url used to locate the database for this datasource.

Returns:
value of url.

getUser

public java.lang.String getUser()
Get the value of default user (login or username).

Returns:
value of user.

isPoolPreparedStatements

public boolean isPoolPreparedStatements()
Flag to toggle the pooling of PreparedStatements

Returns:
value of poolPreparedStatements.

setDescription

public void setDescription(java.lang.String v)
Set the value of description. This property is here for use by the code which will deploy this datasource. It is not used internally.

Parameters:
v - Value to assign to description.

setDriver

public void setDriver(java.lang.String v)
               throws java.lang.ClassNotFoundException
Set the driver classname. Setting the driver classname cause the driver to be registered with the DriverManager.

Parameters:
v - Value to assign to driver.
java.lang.ClassNotFoundException

setLoginTimeout

public void setLoginTimeout(int seconds)
Sets the maximum time in seconds that this data source will wait while attempting to connect to a database. NOT USED.

Specified by:
setLoginTimeout in interface javax.sql.ConnectionPoolDataSource

setLogWriter

public void setLogWriter(java.io.PrintWriter out)
Set the log writer for this data source. NOT USED.

Specified by:
setLogWriter in interface javax.sql.ConnectionPoolDataSource

setMaxActive

public void setMaxActive(int maxActive)
The maximum number of active statements that can be allocated from this pool at the same time, or zero for no limit.


setMaxIdle

public void setMaxIdle(int maxIdle)
The maximum number of statements that can remain idle in the pool, without extra ones being released, or zero for no limit.


setMinEvictableIdleTimeMillis

public void setMinEvictableIdleTimeMillis(int minEvictableIdleTimeMillis)
Sets the minimum amount of time a statement 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. *see #getMinEvictableIdleTimeMillis *see #setTimeBetweenEvictionRunsMillis


setNumTestsPerEvictionRun

public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun)
Sets the number of statements 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. *see #getNumTestsPerEvictionRun *see #setTimeBetweenEvictionRunsMillis


setPassword

public void setPassword(java.lang.String v)
Set the value of password for the default user.

Parameters:
v - Value to assign to password.

setPoolPreparedStatements

public void setPoolPreparedStatements(boolean v)
Flag to toggle the pooling of PreparedStatements

Parameters:
v - true to pool statements.

setTimeBetweenEvictionRunsMillis

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 #getTimeBetweenEvictionRunsMillis


setUrl

public void setUrl(java.lang.String v)
Set the value of url used to locate the database for this datasource.

Parameters:
v - Value to assign to url.

setUser

public void setUser(java.lang.String v)
Set the value of default user (login or username).

Parameters:
v - Value to assign to user.


Copyright © 2001 Apache Software Foundation. Documenation generated August 12 2002.