Our connection proxy keeps a list of pending statements so they can be closed automatically when needed. By default, this would also include statements that are already closed by the application. This causes needless memory usage overhead, and has now been fixed: statements that were closed by the application are purged from the list of pending statements.
Upgrade to this version if you have memory problems due to long transactions with many JDBC statements.
WARNING: do NOT upgrade if your JDBC driver is not JDBC 4 compliant.
Removed unnecessary synchronisation overhead to optimize performance.
IMPORTANT: this release is a highly recommended fix for your installation if you are using release 3.7.8 or later. If you don't upgrade then you risk losing part of the transaction.
During an earlier fix for case 102827 in release 3.7.8 (connection leak for errors during XAResource.end), we disabled throwing exceptions originating from XAResource.end, assuming that XAResource.prepare would subsequently refuse to prepare or commit the Xid in question. It turns out that there was a problem with this assumption and the way it was implemented in the code, which caused this issue. This has been fixed, and of course we've added a test to prevent future regression.
There was a bug in removing obsolete sessions, caused by incompatibility of the equals method and dynamic proxies. This has now been fixed.
initConnectionSql. When set, the connection pool will trigger the specified SQL when a new connection is added to the pool.