From 9bb7ab9d7a45b8062f603471f6bf83f3ba0b3693 Mon Sep 17 00:00:00 2001 From: DigitalSonic Date: Fri, 10 Feb 2017 22:24:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3Oracle=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E5=99=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修正原先的实现中isValidConnection方法忽略validationQueryTimeout参数的问题,优先使用validationQ ueryTimeout,然后才是timeout --- .../druid/pool/vendor/OracleValidConnectionChecker.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/vendor/OracleValidConnectionChecker.java b/src/main/java/com/alibaba/druid/pool/vendor/OracleValidConnectionChecker.java index db54c93da3..5801fff455 100644 --- a/src/main/java/com/alibaba/druid/pool/vendor/OracleValidConnectionChecker.java +++ b/src/main/java/com/alibaba/druid/pool/vendor/OracleValidConnectionChecker.java @@ -70,15 +70,17 @@ public class OracleValidConnectionChecker extends ValidConnectionCheckerAdapter conn = ((ConnectionProxy) conn).getRawObject(); } - if (validateQuery == null || validateQuery.length() == 0) { + if (validateQuery == null || validateQuery.isEmpty()) { return true; } + int queryTimeout = validationQueryTimeout < 0 ? timeout : validationQueryTimeout; + Statement stmt = null; ResultSet rs = null; try { stmt = conn.createStatement(); - stmt.setQueryTimeout(timeout); + stmt.setQueryTimeout(queryTimeout); rs = stmt.executeQuery(validateQuery); return true; } finally {