Release 16 of Vibur DBCP brought many new features and performance enhancements, some of which are:
* The Connection and method invocation hooks now allow for multiple hooks to be registered at a single hook invocation point.
* The timeTaken for native JDBC Connection establishing/closing is now reported back to the hooks. Similarly, the timeTaken to obtain a Connection from the pool as well as the time for which the application has held the Connection is reported back to the respective get/restore Connection hooks.
* Release 12.0 added support for third-party concurrent collections such as the Conversant Disruptor collections to be used on the place of java.util.Queue/Deque as part of the ConcurrentPool implementation in Vibur Object Pool.
* Logging improvements in logTakenConnectionsOnTimeout: in case of Connections exhaustion this option will now log not only the stack trace of the threads that have taken the Connections as at the moment of their taking, but also the current execution stack trace of these threads, if the threads are still alive.
* Since release 15.0 Vibur DBCP intercepts the executed SQL query string in the Connection and Statement InvocationHandlers and doesn't longer depend on the JDBC driver functionality for preparedStatement.toString().