What is new in BTM version 2.x.x
BTM 2.0.0+ is a cleaned up and refined version of the 1.3.x branch with no major change visible from the end user. A lot of internal polishing happened enabling future developments as well as the usual bug fixes and some requested new features.
JDBC 4 support
- BTM can now be built against JDBC 4 API and its JDBC connection pool now has support for the isValid() connection check instead of the test query when a JDBC 4 driver is detected. Set enableJdbc4ConnectionTest property to true to enable this feature. The pool will then autodetect if the underlying JDBC driver is compatible and use the feature if available, otherwise it will revert back to the old test query mechanism.
JDBC custom isolation level
- The JDBC connection pool can now force connections to a specific isolation level. Set the PoolingDataSource isolationLevel property to one of these values: READ_UNCOMMITTED READ_COMMITTED REPEATABLE_READ SERIALIZABLE to force the level you want.
Support for per connection transaction affinity
- BTM's pool can now track connections requested from the pool and return the same connection for every DataSource.getConnection() call in the same transaction. Set shareTransactionConnections property on your pool to enable this feature.
Improved JDBC PreparedStatement cache
- The JDBC PreparedStatement cache is now much more efficient than it used to be as well as being much more robust.
JTA 1.1 support
- The JTA 1.1 TransactionSynchronizationRegistry has been implemented and can now be used. It can be acquired either via the TransactionManagerServices singleton or via the embedded JNDI server under the (configurable) java:comp/TransactionSynchronizationRegistry standard name.
Improved JMX monitoring
- The JMX monitoring beans have been extended for better monitoring capabilities, particularly for the JMS and JDBC connection pools.
Improved Maven 2 support
- The published POM has been updated to depend on the standard JTA 1.1 JAR instead of the Geronimo JTA 1.0.1B one which is more commonly found. Sources and javadocs are now also uploaded to the central maven 2 repo. Tomcat and Jetty lifecycle JARs made their way to the maven 2 repo too.