HikariCP Changes Changes between 1.3.0 and 1.3.1 *) Java 6 compatibility. *) HikariDataSource now extends HikariConfig, so pool properties can be set directly on a HikariDataSource without need to create a HikariConfig. The cost of doing so is a small runtime cost due to the fact that an "is initialized" check must be performed on every invocation of getConnection() due to lazy initialization of the pool. *) Added Sybase-specific disconnect error codes to SQLException snooping. *) Added HikariConfig.setCatalog() method to set DataSource catalog. *) Add DataSource.close() method that is synonymous with shutdown(). *) More performance improvements (never ending). *) Moved benchmarks to https://github.com/brettwooldridge/HikariCP-benchmark Changes between 1.2.9 and 1.3.0 *) Pool is now backed by a custom lock-less ConcurrentBag that provides superior performance to LinkedBlockingQueue and LinkedTransferQueue for usage patterns of connection pools. *) Fixed bugs reported against the 1.2.9 release. *) Added more detailed logging for broken connections and failures during new connection creation. Changes between 1.2.8 and 1.2.9 *) Added a fail-fast option for pool initialization. If enabled, a RuntimeException will be thrown if there are errors during pool initialization. *) Made the registration of the HikariCP MBeans optional. They now default to not being registered. Registering them causes a minor performance hit due to additional pool data collection in HikariDataSource.getConnection(). *) Added the SQLException message to the log entry when an exception occurs during physical connection acquisition. *) Implemented an orderly shutdown of the pool via the shutdown() method on HikariDataSource. *) Listened to "Adele - Live At The Royal Albert Hall" on endless loop. Changes between 1.2.7 and 1.2.8 *) Fixed a critical bug introduced in 1.2.7 occurring when the number of concurrently open statements exceeds sixteen. Changes between 1.2.6 and 1.2.7 *) Finally achieved performance parity between the generated delegates and the former method of instrumenting driver classes directly. *) Improved generated delegate code. Removed unnecessary casts, moved to a static proxy factory rather than a singleton (performance win). *) Improved performance of FastStatementList (primary source of speed-up to reach parity with former instrumentation code). *) Removed aliveness check on connection creation. *) Track connection isolation level and only reset if the state has become "dirty". Avoids unnecessary round trip to the DB during the aliveness check. *) Added interface IConnectionCustomizer and related HikariConfig property 'connectionCustomizerClassName' to allow users to specify a connection customization implementation. Changes between 1.2.5 and 1.2.6 *) Fixed regression that caused IndexOutOfBounds when multiple unclosed Statements existed at the time of Connection.close(). *) Fixed incorrect pom.xml dependency on Hibernate. Changes between 1.2.4 and 1.2.5 *) Instrumentation mode (agent) removed due to narrowing gap between delegation mode and instrumentation (and to simplify the code base). *) Added setDataSource() to HikariConfig to allow a DataSource instance to be explicitly wrapped by the pool. Only available when creating HikariConfig programmatically or constructing HikariConfig from a java.util.Properties instance. *) Fixed Hibernate threading issue (certain usage patterns) introduced in 1.2.2. *) Fixed issue observed with PostgreSQL whereby the query that tests the connection for "aliveness" also starts a transaction (when auto-commit is false), thereby causing a later failure when we tried to set the transaction isolation level. *) Fixed issue where idleTimeout could not be set to 0, thereby disabling it. Incorrect value validation caused 0 to be rejected as a valid value. Changes between 1.2.3 and 1.2.4 *) Fix another Hibernate-related issue whereby an NPE is encountered when a thread that was not the thread that obtained a Connection tries to interact with that Connection. Changes between 1.2.2 and 1.2.3 *) Fix internal (but suppressed) exception during rollback of connections returned to the pool with auto-commit turned off. *) Fix a reflection issue that causes Hibernate failures due to the CallableStatement interface being incorrectly injected into statement proxies that are PreparedStatement or Statement instances. Changes between 1.2.1 and 1.2.2 *) Perform a rollback() on connections returned to the pool with auto commit disabled. *) Add a constructor for HikariConfig that accepts a Properties object. *) Speed improvements for delegate mode. *) Fix a bug where connection timeouts could not be disabled. *) Permit setting the DataSource logWriter either on the HikariDataSource or via addDataSourceProperty() on the HikariConfig. *) Add transactionIsolation property to allow setting the default transaction isolation level for connections. Changes between 1.1.9 and 1.2.1 *) Clear SQL warnings before returning a connection to the user. *) Added asynchronous connection backfill strategy that triggers when the pool becomes empty as a result of dispatching a connection. *) Changed default acquireIncrement to 1, set minimum timeout of 100ms for acquiring a connection. Changes between 1.1.8 and 1.1.9 *) Added connectionInitSql property to allow setting connection properties when a new connection is created. *) Added setDataSourceProperties() setter to HikariConfig to allow easier configuration though Spring.