diff --git a/CHANGES b/CHANGES index 9a29e3e9..5863f107 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,24 @@ HikariCP Changes Changes in 2.4.2 + * Improve accuracy of timeouts for getConnection() calls by accounting for possibly + long delay aliveness tests. + + * Improve adherence to minimumIdle goal by closing idle connections starting from + longest idle time to shortest. Additionally, stop when minimumIdle is reached even + if connections exceeding idleTimeout remain (but are still within maxLifetime). + + * Ongoing com.zaxxer.hikari.metrics refactors. This is not considered public API until + such time as we announce it. Caveat lector. + + * Performance improvements in the getConnection()/close() hot path. + + * issue 415: remove use of java.beans classes to allow use of HikariCP with the + Zulu JRE compact3 profile. + + * issue 406: execute validation query during connection setup to make sure it is + valid SQL. + * Fixed issue with proxy generation whereby the generated classes contain the major version number for Java 8, which makes them incompatible with the Java 7 runtime. @@ -49,7 +67,7 @@ Changes in 2.4.0 @Deprecated have been removed. * Deprecated HikariDataSource.shutdown() in favor of close(). - + * Improve shutdown performance. * Allow user specified ScheduledThreadPoolExecutor for housekeeping timer. Useful @@ -64,7 +82,7 @@ Changes in 2.3.7 * 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. diff --git a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java index 857c4865..a40717e9 100644 --- a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java +++ b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java @@ -442,6 +442,7 @@ public class HikariPool extends PoolBase implements HikariPoolMXBean, IBagStateL // Speculative increment of totalConnections with expectation of success if (totalConnections.incrementAndGet() > config.getMaximumPoolSize()) { totalConnections.decrementAndGet(); // Pool is maxed out, so undo speculative increment of totalConnections + //LOGGER.debug("{} - Cannot exceed maximum connections capacity: {}", poolName, config.getMaximumPoolSize()); return true; } @@ -487,7 +488,7 @@ public class HikariPool extends PoolBase implements HikariPoolMXBean, IBagStateL addConnectionExecutor.execute(new Runnable() { @Override public void run() { - logPoolState("After fill\t"); + logPoolState("After adding\t"); } }); } diff --git a/src/test/java/com/zaxxer/hikari/pool/TestConnectionTimeoutRetry.java b/src/test/java/com/zaxxer/hikari/pool/TestConnectionTimeoutRetry.java index c8c9d277..176788d4 100644 --- a/src/test/java/com/zaxxer/hikari/pool/TestConnectionTimeoutRetry.java +++ b/src/test/java/com/zaxxer/hikari/pool/TestConnectionTimeoutRetry.java @@ -236,7 +236,7 @@ public class TestConnectionTimeoutRetry Thread.sleep(2000); - Assert.assertSame("Totals connections not as expected", 10, TestElf.getPool(ds).getTotalConnections()); + Assert.assertSame("Total connections not as expected", 10, TestElf.getPool(ds).getTotalConnections()); Assert.assertSame("Idle connections not as expected", 3, TestElf.getPool(ds).getIdleConnections()); connection1.close();