Here's the DBCP proposal. The DBCP package provides a Driver and DataSource wrapper around any ObjectPool implementation (see Commons-Pool) and arbitrary sources for Connections, so I think it should serve most anyone's needs. This is originally based upon a DBCP implementation we've been using in production for quite a while now, and it has performed admirably well for us in a top-100, database intensive site, although this specific implementation has been changed at bit so a problem may have cropped up here or there. As I mentioned in my earlier correspondence with Craig, I've dropped the JOCL proposal and moved the JOCL classes into this bundle. It looks like Digester does everything JOCL does and more, so once Digester is available, we can port from JOCL to Digester, and drop JOCL altogether. - Rod --------------------------------------------------- Proposal for Database Connection Pool [DBCP] Package (0) Rationale Many Jakarta products support interaction with a relational database. Creating a new connection for each user can be time consuming (often requiring multiple seconds of clock time), in order to perform a database transaction that might take milliseconds. Opening a connection per user can be unfeasible in a publicly-hosted Internet application where the number of simultaneous users can be very large. Accordingly, developers often wish to share a "pool" of open connections between all of the application's current users. The number of users actually performing a request at any given time is usually a very small percentage of the total number of active users, and during request processing is the only time that a database connection is required. The application itself logs into the DBMS, and a handles any user account issues internally. There are several Database Connection Pools already available, both within Jakarta products and elsewhere. A Commons package would give committers an opportunity to coordinate their efforts to create and maintain a efficient, feature-rich package under the ASF license. (1) Scope of the Package The package shall create and maintain a database connection pool package written in the Java language to be distributed under the ASF license. The package shall be available as a pseudo-JDBC driver and via a DataSource interface. The package shall also support multiple logins to multiple database systems, reclamation of stale or dead connections, testing for valid connections, PreparedStatement pooling, and other features. (1.5) Interaction With Other Packages DBCP relies on: * Java Development Kit (Version 1.2 or later) * Java 2 Enterprise Edition (javax.sql packages only) * Jakarta-Commons Collections package * Jakarta-Commons Pool package * [currently, for JOCL configuration] Simple API for XML (Version 2.0 or later) * [currently, for JOCL configuration] A SAX 2.0 compliant XML parser (Xerces, XP, etc.) * JUnit Testing Framework (Version 3.2 or later) - for unit tests only, not required for deployment External configuration of the database connection pool will be supporting using the Digester XML configuration package. (Soon to be a proposal to Jakarta-Commons). Currently, configuration may be accomplished using the Java Object Configuration Language (part of the proposed code base). (2) Initial Source of the Package The initial codebase was contributed by Rodney Waldhoff from a working project and can be distributed under the Apache license. The proposed package name for the new component is org.apache.commons.dbcp. (3) Required Jakarta-Commons Resources CVS Repository - New directory dbcp in the jakarta-commons CVS repository. All initial committers are already committers on jakarta-commons, so no additional user setups are required. Mailing List - Discussions will take place on the general [EMAIL PROTECTED] mailing list. To help list subscribers identify messages of interest, it is suggested that the message subject of messages about this component be prefixed with [DBCP]. Bugzilla - New component "DBCP" under the "Commons" product category, with appropriate version identifiers as needed. Jyve FAQ - New category "commons-dbcp" (when available). (4) Initial Committers Morgan Delagrange Geir Magnusson Jr. Craig R. McClanahan Rodney Waldhoff David WeinrichTitle: Proposal for Database Connection Pool [DBCP] Package
Proposal for Database Connection Pool [DBCP] Package(0) RationaleMany Jakarta products support interaction with a relational database. Creating a new connection for each user can be time consuming (often requiring multiple seconds of clock time), in order to perform a database transaction that might take milliseconds. Opening a connection per user can be unfeasible in a publicly-hosted Internet application where the number of simultaneous users can be very large. Accordingly, developers often wish to share a "pool" of open connections between all of the application's current users. The number of users actually performing a request at any given time is usually a very small percentage of the total number of active users, and during request processing is the only time that a database connection is required. The application itself logs into the DBMS, and a handles any user account issues internally. There are several Database Connection Pools already available, both within Jakarta products and elsewhere. A Commons package would give committers an opportunity to coordinate their efforts to create and maintain a efficient, feature-rich package under the ASF license. (1) Scope of the PackageThe package shall create and maintain a database connection pool package written in the Java language to be distributed under the ASF license. The package shall be available as a pseudo-JDBC driver and via a DataSource interface. The package shall also support multiple logins to multiple database systems, reclamation of stale or dead connections, testing for valid connections, PreparedStatement pooling, and other features. (1.5) Interaction With Other PackagesDBCP relies on:
External configuration of the database connection pool will be supporting using the Digester XML configuration package. (Soon to be a proposal to Jakarta-Commons). Currently, configuration may be accomplished using the Java Object Configuration Language (part of the proposed code base). (2) Initial Source of the PackageThe initial codebase was contributed by Rodney Waldhoff from a working project and can be distributed under the Apache license. The proposed package name for the new component is
(3) Required Jakarta-Commons Resources
(4) Initial Committers
|