| <?xml version="1.0" encoding="ISO-8859-1"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <document> |
| |
| <properties> |
| <title>Overview</title> |
| <author email="dev@commons.apache.org">Commons Documentation Team</author> |
| </properties> |
| |
| <body> |
| |
| <section name="The DBCP Component"> |
| |
| <p>Many Apache projects 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 handles any user account issues internally.</p> |
| |
| <p>There are several Database Connection Pools already available, both |
| within Apache products and elsewhere. This Commons package provides an |
| opportunity to coordinate the efforts required to create and maintain an |
| efficient, feature-rich package under the ASF license.</p> |
| |
| <p>The <code>commons-dbcp</code> package relies on code in the |
| <code>commons-pool</code> package to provide the underlying object pool |
| mechanisms that it utilizes.</p> |
| |
| <p>Applications can use the <code>commons-dbcp</code> component directly |
| or through the existing interface of their container / supporting framework. |
| For example the <a href="http://tomcat.apache.org/">Tomcat</a> |
| servlet container presents a DBCP DataSource as a JNDI Datasource. |
| <a href="http://james.apache.org/">James</a> (Java Apache Mail Enterprise Server) |
| has integrated DBCP into the <a href="http://avalon.apache.org/">Avalon</a> framework. |
| A Avalon-style datasource is created by |
| <a href="http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/util/dbcp/JdbcDataSource.java?view=markup"> |
| wrapping</a> the DBCP implementation. |
| The pooling logic of DBCP and the configuration found in Avalon's excalibur |
| code is what was needed to create an integrated reliable DataSource. |
| </p> |
| |
| </section> |
| |
| <section name="Releases"> |
| <p> |
| See the <a href="downloads.html">downloads</a> page for information on obtaining releases. |
| </p> |
| </section> |
| |
| <section name="Documentation"> |
| |
| <p>The |
| <a href="apidocs/index.html">JavaDoc API documents</a> |
| are available online. In particular, you should |
| read the package overview of the |
| <code><a href="apidocs/org/apache/commons/dbcp/package-summary.html#package_description">org.apache.commons.dbcp</a></code> |
| package for an overview of how to use DBCP.</p> |
| |
| <p>There are |
| <a href="http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/doc/">several examples</a> |
| of using DBCP available.</p> |
| |
| </section> |
| |
| </body> |
| </document> |