db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Knut Anders Hatlen <Knut.Hat...@Sun.COM>
Subject Re: What exactly are the *ConnectionPoolDataSource classes for?
Date Fri, 21 Sep 2007 06:58:57 GMT
Alan Burlison <Alan.Burlison@Sun.COM> writes:

> Hi,
> I'm embedding Derby inside Tomcat, but running it in Server mode so I
> can connect to it externally whilst Tomcat is running - I have all
> that working OK.
> I'm now trying to figure out the best way to get access to the
> database from JSPs.  I can either push a DataSource into the
> ServletContext as an attribute and reference that in the JSP (which
> works) or set up a JNDI resource, which I think is a better solution.
> What's confusing me is the different DataSource classes that Derby
> has. The example code I've seen via google uses javax.sql.DataSource
> in the JDNI resource definition, but Derby offers
> ClientConnectionPoolDataSource, ClientDataSource,
> EmbeddedConnectionPoolDataSource and EmbeddedDataSource.  I've read
> the Derby docs that discuss these classes, but they sort of assume you
> already know how it all works!
> Do the ConnectionPoolDataSource variants actually provide connection
> pooling, and if so how do I configure a JDNI reference to use them?
> How do they interact with the Commons DBCP connection pooling that's
> usually used with Tomcat - or do they just replace it?  If the Derby
> classes *do* provide connection pooling, how is it configured?

Derby doesn't provide connection pooling, but ConnectionPoolDataSource
can be used as a basic building block for a connection pool. A
ConnectionPoolDataSource creates PooledConnections, whereas a DataSource
creates Connections. A PooledConnection is just a wrapper around a
physical connection so that you can open/close logical Connection
objects without actually closing the underlying connection. Although
ConnectionPoolDataSource makes it easier to implement a connection pool,
it is possible to build a connection pool around DataSource too. I don't
know how the connection pool in Tomcat works, but if the example code
normally uses DataSource, I assume that it has implemented the wrapping
of the physical connections itself and you'll be fine with DataSource.

Knut Anders

View raw message