NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Maven Central · #661 by repository stars
Ultimate JDBC Connection Pool
Last release 11 years ago
no release in 18 months
Release timing varies
gaps range from 1 weeks to 4 months
Most releases are documented
notes for 14 of 23 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
23 releases · first in 2014
issue 512: reduce the number of calls made to Connection.getAutoCommit().
Fixed issue with proxy generation whereby the generated classes contain the major version number for Java 8, which makes them incompatible with the Ja
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Try harder at resolving the driver by various means when both driverClassName and jdbcUrl have been specified.
Try harder at resolving the driver by various means when both driverClassName and jdbcUrl have been specified.
Allow a specifically set DataSource instance to override other settings such as jdbcUrl, dataSourceClassName, or driverClassName.
Fixed issue where, in the case of a driver-based configuration (jdbcUrl), we were not initialising the network timeout Executor.
Fixed race condition uncovered during load-testing in which the connections in the pool can spike to the maximum pool size when many connections reach their maxLifetime at the same time.
Allow explicit definition of driverClassName to override DriverManager.getDriver(url) located driver.
Allow explicit definition of driverClassName to override DriverManager.getDriver(url) located driver.
Fixed a rare issue where a Connection that is held out of the pool, and never used by the holding thread, upon returning to the pool might be given to another thread without an aliveness test.
Fixed regression caused by enhancement #279 that imposed a runtime dependency on Dropwizard metrics.
Removed deprecation from connectionInitSql, it will be allowed.
Fixed class cast exception when setting the HealthCheckRegistry via JNDI lookup.
Allow Dropwizard MetricRegistry/HealthCheckRegistry to be set after pool startup -- one time only.
Make logger in BaseHikariPool non-static and use getClass() to log messages as the implementation class rather than as BaseHikariPool.
Removed deprecation from connectionInitSql, it will be allowed.
Made suspect/resume lock non-static (should be be shared across pools).
Improved unwrap() behavior in the Hibernate HikariConnectionProvider.
Improved leak detection log
Fixed bad interaction with PostgeSQL JDBC driver whereby a SQLException thrown by PostgreSQL where the getNextException() call returns the original ex
Fixed bad interaction with PostgeSQL JDBC driver whereby a SQLException thrown by PostgreSQL where the getNextException() call returns the original exception and causes an infinite loop in HikariCP (and eventual stack overflow).
Throw a typed Exception rather than a simple RuntimeException when pool initialization fails.
Allow Dropwizard Metrics and HealthChecks to be configured by a JNDI lookup.
Add support for Dropwizard HealthChecks through the introduction of two initial health checks: ConnectivityCheck and Connection99Percent. See the Gith
Add support for Dropwizard HealthChecks through the introduction of two initial health checks: ConnectivityCheck and Connection99Percent. See the Github project wiki for documentation.
Allow a lower maxLifetime setting of 30 seconds (compared to previous 120 second limit)
Improve the message displayed when a connection leak is detected.
Fixed a bug where Connection.setNetworkTimeout() was called on an already closed connection resulting in a warning log from the AS400 JDBC driver.
Work around a bug in the MySQL Connector/J implementation of Connection.setNetworkTimeout() that results in non-deterministic asynchronous application
Work around a bug in the MySQL Connector/J implementation of Connection.setNetworkTimeout() that results in non-deterministic asynchronous application of the timeout, resulting in an NPE from the MySQL driver when setNetworkTimeout() is followed immediately by close().
Introduced a separate validationTimeout property, distict from connectionTimeout, to allow greater control for some deployments that desire a long (or infinite) connectionTimeout but expect the aliveness check to succeed for fail within a different (shorter) amount of time.
Support pool suspend/resume to support certain failover scenarios.
Support pool suspend/resume to support certain failover scenarios.
Fix theoretical race in JDBC 4.0 detection support.
Improve shutdown() semantics to avoid exceptions as connections are forcefully aborted.
Unregister Codahale metrics at shutdown, if metrics are enabled.
Major internal project layout restructuring to allow shared use of common code between the Java 6/7 and Java 8 versions.
Fixed bug where two pools in the same VM (and ClassLoading domain), using drivers with differing JDBC support levels, would fail unless both pools were using connectionTestQuery.
Improved timeliness of maxLifetime evictions, while increasing performance of getConnection() slightly as a side-effect.
Fixed bug in HikariDataSource unwrap() semantics.
Allow a lower leakDetectionThreshold of 2 seconds.
Fixed bug when using the HikariJNDIFactory that required the presence of Codahale metrics.
Support initializationFailFast even when minimumIdle = 0
Log internal pool inconsistencies rather than throwing exceptions that might disrupt internal executors.
Guard against poor or unreliable System.nanoTime() implementations.
Fixes for Java 6 compatibility.
Fixes for Java 6 compatibility.
Implement full transaction state tracking. This allows HikariCP to bypass the automatic rollback when connections are returned to the pool if the transaction state is "clean".
Rename MBean closeIdleConnections() to softEvictConnections() and implement "evict on return" semantics.
Fixed bug in code that sets HikariConfig values from a Properties instance that prevented defaults from being read properly.
Fixed an obscure bug in connection creation with a driver that throws an exception when setTransactionIsolation() is called with the value returned by getTransactionIsolation(). We now bypass setTransactionIsolation() if the user has not configured an isolation level (using the default).
Fix a bug where DataSource.loginTimeout() was always being set to 1 second.
Fix bug where some drivers return 0 from Connection.getNetworkTimeout(), and yet throw SQLFeatureNotSupportedException when setNetworkTimeout() is called. This broke they way that HikariCP had implemented JDBC 4.1 support detection.
Generate proxy classes into the same protection domain as the HikariCP loaded classes. This solves issues with signed jars.
Generate proxy classes into the same protection domain as the HikariCP loaded classes. This solves issues with signed jars.
Improve accuracy of pool statistics available to JMX and logged at debug level (at a slight performance cost).
Fixed issue where after a database down condition, and when minimumIdle is set to 0, when the database connectivity is restored the connections could ramp up to the maximum pool size. Eventually, idleTimeout and maxLifetime would restore normal pool conditions, but it was still undesirable behavior.
Improved connection timeout handling by using Connection.setNetworkTimeout() if available (JDBC 4.1).
driverClassName is no longer a required property when jdbcUrl is specified. Omitting this property only works for compliant drivers.
Add auto-detection of support for Statement.setQueryTimeout() used in the alive check. Fixes failures with test queries on the PostgreSQL driver when not using JDBC4 isValid() alive checks.
The pool now defaults to fail-fast initialization. If you need to start your application without/before the database, you will need to explicitly set initializationFailFast to false.
Dropwizard/Codahale metrics are now supported via the setMetricRegistry() method in HikariConfig and in HikariDataSource.
Fixed issue with pool initialization of MySQL after default value of initializationFailFast property was changed to false.
Further shadow runtime dependency on Codahale metrics from reflection performed by Spring and other IoC containers.
Fix issue where network timeout was not properly restored to its default value after modifying it for the duration of the addConnection() method.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Significant internal refactor supporting creation of new proxy instances (throwaway) around Connections for each call to getConnection(). This can avo
Significant internal refactor supporting creation of new proxy instances (throwaway) around Connections for each call to getConnection(). This can avoid issues where a thread continues to try to use a connection after it is closed [returned to the pool].
Allow HikariConfig(String propertyFileName) to load properties file from classloader as a stream, with fall-back to the file-system.
Allow loading of properties file specified by -Dhikaricp.configurationFile system property when using the default HikariConfig() or HikariDataSource() constructors.
Fixed accounting issue with totalConnections when aborting connections during shutdown, causing a warning message to be logged.
Fixed regression in Java 8 codeline that would prevent minimumIdle from being set before maxPoolSize.
Fixed regression with Tomcat carping about ThreadLocal variables held after web application restart
Change to make HikariConfig.getTransactionIsolation()/setTransactionIsolation() follow proper bean semantics.
Fixed issue where connections created in the pool would skip the alive check the first time they were used.
Split project into Java 6/7 and Java 8 components.
Split project into Java 6/7 and Java 8 components.
Fixed issue in JNDI object factory which would not allow JNDI-defined DataSource properties to pass-thru to the pool.
Fixed issue where under certain conditions getConnection() could timeout prematurely.
Fixed issue where user-defined pool name would be overridden by the automatically generated name.
Fixed NPE when one of either username and password is defined, and the other is null.
Fixed issue tracking the statements when there are mixed statement types (Statement, PreparedStatement, etc.) open on the connection and the number of unclosed statements exceeds 32.
Fixed issue where housekeeping threads would add idle connections even when minimumIdle was 0.
Fixed issue where Wrapper.isWrapperFor() and Wrapper.unwrap() calls did not recurse as per specification.
HikariDataSource now implements the Closable interface.
Integrated change to allow specifying a ThreadGroup for thread creation is certain restricted environments.
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →