commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John McNally <jmcna...@collab.net>
Subject Re: cvs commit: jakarta-commons-sandbox/jdbc2pool - New directory
Date Tue, 15 Jan 2002 06:55:48 GMT
Randy Speh wrote:
> 
> Could you please give me hint on how the new jdbc2pool
> connection pool is supposed to be used?
> 
> I would like to use a OracleConnectionPoolDataSource
> to pool some connections and in another case I'd like
> to use a DataSource object managed by WebSphere.

The pool will use any ConnectionPoolDataSource (CPDS) as its backend
supply of physical database connections.  The backend datasource is
specified using the setDataSourceName method which is used to find the
CPDS using jndi.  The maximum number of connections can be configured on
a per user basis; the rest of the properties are set globally.

The Jdbc2PoolDataSource can be instantiated and initialized using
standard bean introspection methods.  So it should be deployable using
any tool meant for use with DataSources or general javabeans.  It does
use Properties for the per user maximum connections as well as the jndi
environment properties, which are both optional.  I do not know how well
these might be supported by the standard tools.  All the other
properties are String's or int's.  In torque the DataSource(s) can be
bound to jndi using a simple properties file to determine
initialization.

The internal pools are stored in a class attribute Map, so several
instances of the DataSource will share the same connections.  This
arrangement is given as an example in the specification.  A better cache
than a HashMap could be used to add more functionality, but such
optimizations are being left until the future of this pool code is
better determined.

Finally the pool can be initialized and used as a normal class, here is
an example using the DriverAdapterCPDS that comes with the pool:

DriverAdapterCPDS pcds = new DriverAdapterCPDS();
pcds.setDriver("org.gjt.mm.mysql.Driver");
pcds.setUrl("jdbc:mysql://localhost/test");
pcds.setUser("root");
pcds.setPassword("xxx");

Jdbc2PoolDataSource tds = new Jdbc2PoolDataSource();
tds.setConnectionPoolDataSource(pcds);
tds.setDefaultMaxConnections(10);
tds.setMaxExpiryTime(3600);
tds.setConnectionWaitTimeout(10);
tds.setLogInterval(300);

DataSource ds = tds;
...

Connection con = ds.getConnection();


john mcnally

--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message