| Apache Apache Commons DBCP |
| Version 2.0 |
| RELEASE NOTES |
| |
| The Apache Commons DBCP team is pleased to announce the release of Apache Apache Commons DBCP 2.0 |
| |
| Apache Commons DBCP software implements Database Connection Pooling |
| |
| This release includes new features as well as bug fixes and enhancements. |
| Version 2.0.x supports JDBC 4.1, so requires Java 7. |
| |
| The Java package name has been changed from 'org.apache.commons.dbcp' to 'org.apache.commons.dbcp2'. |
| Also the Maven groupId is now 'org.apache.commons' and the artifactId is 'commons-dbcp2' |
| These changes are necessary because the API is not strictly binary compatible with the 1.x releases. |
| To convert from the earlier releases, update the package name in imports, update the dependencies and recompile. |
| There may be a few other changes to be made (TBA) |
| |
| Java 6 users should use DBCP 1.4.x which supports JDBC 4. |
| Java 1.4 and Java 5 users should use DBCP 1.3.x which supports JDBC 3. |
| Applications running under Java 7 should use DBCP 2.0.x. |
| |
| Changes in this version include: |
| |
| New features: |
| o Provide a new option (cacheState) to cache current values of autoCommit |
| and readOnly so database queries are not required for every call to the |
| associated getters. This option is enabled by default. |
| o DBCP-292: BasicDataSource instances are now exposed via JMX. All the configuration |
| properties are available as is the connection pool and the statement |
| pools (if statement pooling is enabled). |
| o DBCP-368: Expose the new Pool 2 property evictionPolicyClassName to enable more |
| sophisticated eviction strategies to be used. |
| o DBCP-406: Add support for pooling PreparedStatements that use auto-generated keys. Thanks to Steeve Beroard. |
| o DBCP-177: Enable DBCP to work with a SecurityManager such that only DBCP needs to |
| be granted the necessary permissions to communicate with the database. |
| o DBCP-219: Register pooled connections with JMX so that they may be forcibly closed |
| via JMX if required. |
| o DBCP-373: Modify SharedPoolDataSource and PerUserPoolDataSource to expose all of |
| the configuration properties of the underlying connection pool(s). This |
| represents a significant refactoring of these classes and a number of |
| property names have changed as a result. |
| o DBCP-351: Provide an option to control if autoCommit is always set to true when a |
| connection is returned to the connection pool. |
| o DBCP-399: Provide an option to control if rollback is called when a connection is |
| returned to the poll with autoCommit disabled. |
| o DBCP-340: Provide an option to set the default query timeout. |
| o 249: Add support for validation testing database connections on creation. |
| |
| Fixed Bugs: |
| o DBCP-411: BasicManagedDataSource - unregister from JMX on close(). |
| o DBCP-154: Log validation failures of poolable connections. |
| o DBCP-403: DelegatingStatement.close() fails with NPE if statement is null |
| o DBCP-322: CPDSConnectionFactory.validateObject(Object) ignores Throwable. |
| o DBCP-300: Removed unnecessary synchronisation in BasicDataSource#createDataSource. |
| o DBCP-384: Fix threading issues with accessToUnderlyingConnectionAllowed attribute |
| of PoolingDriver which is used to support unit testing. |
| o DBCP-376: Fix thread safety issues in the SharedPoolDataSource and the |
| PerUserPoolDataSource. Thanks to Dave Oxley. |
| o DBCP-382: Allow accessToUnderlyingConnectionAllowed to be configured when |
| configuration takes place via JNDI in a JavaEE container. Thanks to Stefan Rempfer. |
| o DBCP-369: Fix threading issue when using multiple instances of the |
| SharedPoolDataSource concurrently. Thanks to Michael Pradel. |
| o DBCP-391: Ensure that the close state of a pooled connection and the underlying |
| connection is consistent when the underlying connection is closed as a |
| result of an error condition. |
| o DBCP-404: Make all mutable fields private. |
| o DBCP-364: Return BasicDataSource rather than DataSource from |
| BasicDataSourceFactory so a cast is not required to use BasicDataSource |
| specific methods. |
| o DBCP-358: The equals() implementations of the DelegatingXxx classes are now |
| symmetric. There are some important API changes underlying this fix. |
| Firstly, two DelegatingXxx instances are no longer considered equal if |
| they have the same innermost delegate. Secondly, a DelegatingXxx |
| instance is not considered equal to its innermost delegate. The |
| getInnermostDelegateInternal() method has been made public (but remains |
| part of the internal API) to allow classes extending this implementation |
| to access the innermost delegate when required. |
| o DBCP-180: Enable JDBC resources that are no longer referenced by client code to be |
| eligible for garbage collection. |
| o DBCP-410: Correct path to Javadoc overview in build.xml. Thanks to Andreas Sturmlechner. |
| o DBCP-234: The default values for readOnly, autoCommit and transactionIsolation are |
| now taken from the JDBC driver. No calls to setReadOnly(), |
| setAutoCommit() or setTransactionIsolation() will be made for a newly |
| borrowed connection unless a default is explicitly configured and the |
| connection is currently using a different setting. |
| o Connection.isValid() should not throw an SQLException if the connection |
| is closed. |
| o DBCP-357: Use Connection.isValid() to validate connections unless a validation |
| query is explicitly configured. Note that this means it is no longer |
| necessary for a validation query to be specified in order for validation |
| to take place. When testing with Oracle, this resulted in database |
| validation being approximately 7 times faster. |
| |
| Changes: |
| o The Java package name has been changed from org.apache.commons.dbcp to |
| org.apache.commons.dbcp2. |
| o Update to Commons Pool 2 (based on java.util.concurrent) to provide |
| pooling functionality. |
| o Updated source code for Java 1.6 (added @Override & @Deprecated |
| annotations). |
| o Removed JOCL support. |
| o DBCP-143: Remove deprecated SQLNestedException. |
| |
| |
| For complete information on Apache Commons DBCP, including instructions on how to submit bug reports, |
| patches, or suggestions for improvement, see the Apache Apache Commons DBCP website: |
| |
| http://commons.apache.org/proper/commons-dbcp/ |