From 6ee7562b0bd5ade08945b92559ed9639c058cd2b Mon Sep 17 00:00:00 2001 From: Muruganantham Mani Date: Mon, 2 Nov 2015 08:42:07 -0500 Subject: [PATCH] 2.5% random variance of the maxlifetime or 10seconds whichever is greater with random interval change --- src/main/java/com/zaxxer/hikari/pool/HikariPool.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java index bf2713a3..8dd68ee0 100644 --- a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java +++ b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java @@ -443,7 +443,10 @@ public class HikariPool extends PoolBase implements HikariPoolMXBean, IBagStateL final long maxLifetime = config.getMaxLifetime(); if (maxLifetime > 0) { // Determines the random variance max ceiling, from 10 seconds to 2.5% of the maxlifetime whichever is bigger. - final long randomIntervalInMillis = maxLifetime > 10_000 ? Math.max(10_000, maxLifetime / 40) : 0; + final long maxIntervalInMillis = maxLifetime > 10_000 ? Math.max(10_000, maxLifetime / 40) : 0; + + // Randomize the current max interval + final long randomIntervalInMillis = maxIntervalInMillis > 0 ? ThreadLocalRandom.current().nextLong(maxIntervalInMillis) : 0; final long lifetime = maxLifetime - randomIntervalInMillis; poolEntry.setFutureEol(houseKeepingExecutorService.schedule(new Runnable() { @Override