From 9cdcf2fd87f65f3eb8e5b6d68042ef94b079357d Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Thu, 23 Oct 2014 11:20:22 +0900 Subject: [PATCH] Add a configurable constant for the sleep bypass window. Still undocumented, considred internal. --- .../src/main/java/com/zaxxer/hikari/pool/HikariPool.java | 3 ++- hikaricp/src/main/java/com/zaxxer/hikari/pool/HikariPool.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/hikaricp-java6/src/main/java/com/zaxxer/hikari/pool/HikariPool.java b/hikaricp-java6/src/main/java/com/zaxxer/hikari/pool/HikariPool.java index 94c09f82..6d941611 100644 --- a/hikaricp-java6/src/main/java/com/zaxxer/hikari/pool/HikariPool.java +++ b/hikaricp-java6/src/main/java/com/zaxxer/hikari/pool/HikariPool.java @@ -66,6 +66,7 @@ import com.zaxxer.hikari.util.PoolUtilities; public final class HikariPool implements HikariPoolMBean, IBagStateListener { private static final Logger LOGGER = LoggerFactory.getLogger(HikariPool.class); + private static final long ALIVE_BYPASS_WINDOW = Long.getLong("com.zaxxer.hikari.aliveBypassWindow", 1000L); public final String catalog; public final boolean isReadOnly; @@ -186,7 +187,7 @@ public final class HikariPool implements HikariPoolMBean, IBagStateListener } final long now = System.currentTimeMillis(); - if (now > bagEntry.expirationTime || (now - bagEntry.lastAccess > 1000L && !isConnectionAlive(bagEntry.connection, timeout))) { + if (now > bagEntry.expirationTime || (now - bagEntry.lastAccess > ALIVE_BYPASS_WINDOW && !isConnectionAlive(bagEntry.connection, timeout))) { closeConnection(bagEntry); // Throw away the dead connection and try again timeout = connectionTimeout - elapsedTimeMs(start); continue; diff --git a/hikaricp/src/main/java/com/zaxxer/hikari/pool/HikariPool.java b/hikaricp/src/main/java/com/zaxxer/hikari/pool/HikariPool.java index 09915fba..2c042164 100644 --- a/hikaricp/src/main/java/com/zaxxer/hikari/pool/HikariPool.java +++ b/hikaricp/src/main/java/com/zaxxer/hikari/pool/HikariPool.java @@ -65,6 +65,7 @@ import com.zaxxer.hikari.util.PoolUtilities; public final class HikariPool implements HikariPoolMBean, IBagStateListener { private static final Logger LOGGER = LoggerFactory.getLogger(HikariPool.class); + private static final long ALIVE_BYPASS_WINDOW = Long.getLong("com.zaxxer.hikari.aliveBypassWindow", 1000L); public final String catalog; public final boolean isReadOnly; @@ -183,7 +184,7 @@ public final class HikariPool implements HikariPoolMBean, IBagStateListener } final long now = System.currentTimeMillis(); - if (now > bagEntry.expirationTime || (now - bagEntry.lastAccess > 1000L && !isConnectionAlive(bagEntry.connection, timeout))) { + if (now > bagEntry.expirationTime || (now - bagEntry.lastAccess > ALIVE_BYPASS_WINDOW && !isConnectionAlive(bagEntry.connection, timeout))) { closeConnection(bagEntry); // Throw away the dead connection and try again timeout = connectionTimeout - elapsedTimeMs(start); continue;