From f75016268de0fe41366edb7a00479898d5b21c2f Mon Sep 17 00:00:00 2001 From: wenshao Date: Mon, 27 Jun 2011 08:50:42 +0000 Subject: [PATCH] =?UTF-8?q?timeBetweenConnectErrorMillis=E7=9A=84=E8=A1=8C?= =?UTF-8?q?=E4=B8=BA=E5=86=8D=E7=AC=AC3=E6=AC=A1=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E5=87=BA=E9=94=99=E4=B9=8B=E5=90=8E=E5=86=8D=E5=90=AF=E4=BD=9C?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/druid/trunk@284 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- src/main/java/com/alibaba/druid/pool/DruidDataSource.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 2c7ddb53bc..1236978468 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -509,6 +509,8 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat public void run() { initedLatch.countDown(); + final int MAX_ERRRO_TRY = 3; + int errorCount = 0; for (;;) { // addLast lock.lock(); @@ -522,6 +524,8 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat Connection connection = connectionFactory.createConnection(); ConnectionHolder poolableConnection = new ConnectionHolder(DruidDataSource.this, connection); connections[count++] = poolableConnection; + + errorCount = 0; // reset errorCount notEmpty.signal(); @@ -529,8 +533,10 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat break; } catch (SQLException e) { printStackTrace(e); + + errorCount++; - if (timeBetweenConnectErrorMillis > 0) { + if (errorCount > MAX_ERRRO_TRY && timeBetweenConnectErrorMillis > 0) { try { Thread.sleep(timeBetweenConnectErrorMillis); } catch (InterruptedException e1) {