From 803cd999e783fc928eae7d6ef95bc17737f41bdc Mon Sep 17 00:00:00 2001 From: wenshao Date: Thu, 8 Aug 2013 11:25:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A6=82=E6=9E=9CtimeBetweenEvictionRunsMillis?= =?UTF-8?q?<=3D0=EF=BC=8C=E4=BD=BF=E7=94=A8=E7=BC=BA=E7=9C=81=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/alibaba/druid/pool/DruidDataSource.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index c331771932..4d98ee97d5 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -916,9 +916,15 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat } if (isTestWhileIdle()) { - long idleMillis = System.currentTimeMillis() - - poolalbeConnection.getConnectionHolder().getLastActiveTimeMillis(); - if (idleMillis >= this.getTimeBetweenEvictionRunsMillis()) { + final long currentTimeMillis = System.currentTimeMillis(); + final long lastActiveTimeMillis = poolalbeConnection.getConnectionHolder().getLastActiveTimeMillis(); + final long idleMillis = currentTimeMillis - lastActiveTimeMillis; + long timeBetweenEvictionRunsMillis = this.getTimeBetweenEvictionRunsMillis(); + if (timeBetweenEvictionRunsMillis <= 0) { + timeBetweenEvictionRunsMillis = DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS; + } + + if (idleMillis >= timeBetweenEvictionRunsMillis) { boolean validate = testConnectionInternal(poolalbeConnection.getConnection()); if (!validate) { if (LOG.isDebugEnabled()) {