| <?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-dbcp2</code> package relies on code in the |
| <code>commons-pool2</code> package to provide the underlying object pool |
| mechanisms that it utilizes.</p> |
| |
| <p>DBCP now comes in three different versions to support different versions of |
| JDBC. Here is how it works: |
| <ul> |
| <li>DBCP 2 compiles and runs under Java 7 only (JDBC 4.1)</li> |
| <li>DBCP 1.4 compiles and runs under Java 6 only (JDBC 4)</li> |
| <li>DBCP 1.3 compiles and runs under Java 1.4-5 only (JDBC 3)</li> |
| </ul> |
| </p> |
| <p>DBCP 2 binaries should be used by applications running under Java 7.</p> |
| <p>DBCP 1.4 binaries should be used by applications running under Java 6.</p> |
| <p>DBCP 1.3 should be used when running under Java 1.4 5.</p> |
| |
| <p>DBCP 2 is based on Commons Pool 2 and provides increased performance, JMX |
| support as well as numerous other new features compared to DBCP 1.x. Users |
| upgrading to 2.x should be aware that the Java package name has changed, as well |
| as the Maven co-ordinates, since DBCP 2.x is not binary compatible with DBCP |
| 1.x. Users should also be aware that some configuration options (e.g. maxActive |
| to maxTotal) have been renamed to align them with the new names used by Commons |
| Pool 2.</p> |
| |
| <p>There is no difference in the codebase supporting DBCP 1.4.x and 1.3.x other |
| than that the code implementing methods added to support JDBC 4 has been |
| filtered out of the DBCP 1.3 sources.</p> |
| |
| </section> |
| |
| <section name="Releases"> |
| <p> |
| See the <a href="download_dbcp.cgi">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/dbcp2/package-summary.html#package_description">org.apache.commons.dbcp2</a></code> |
| package for an overview of how to use DBCP.</p> |
| |
| <p>There are |
| <a href="https://git-wip-us.apache.org/repos/asf?p=commons-dbcp.git;a=tree;f=doc;hb=refs/heads/master">several examples</a> |
| of using DBCP available.</p> |
| |
| </section> |
| |
| </body> |
| </document> |