From 53514143c627c1ab4ebb938bdaa7c3f8242be46d Mon Sep 17 00:00:00 2001 From: wenshao Date: Sun, 17 Jul 2011 04:17:55 +0000 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81HA?= 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@453 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../com/alibaba/druid/pool/ha/HADataSource.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/ha/HADataSource.java b/src/main/java/com/alibaba/druid/pool/ha/HADataSource.java index 6dd60862e8..8b495ef047 100644 --- a/src/main/java/com/alibaba/druid/pool/ha/HADataSource.java +++ b/src/main/java/com/alibaba/druid/pool/ha/HADataSource.java @@ -5,6 +5,7 @@ import java.sql.Connection; import java.sql.SQLException; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.atomic.AtomicInteger; import javax.sql.DataSource; @@ -14,8 +15,10 @@ public class HADataSource implements DataSource { private final List dataSources = new CopyOnWriteArrayList(); - private int loginTimeout = 0; - private PrintWriter logWriter = new PrintWriter(System.out); + private int loginTimeout = 0; + private PrintWriter logWriter = new PrintWriter(System.out); + + private AtomicInteger requestCount = new AtomicInteger(); public List getDataSources() { return dataSources; @@ -70,7 +73,12 @@ public class HADataSource implements DataSource { @Override public Connection getConnection() throws SQLException { - return null; + int requestNumber = requestCount.getAndIncrement(); + int size = dataSources.size(); + int index = requestNumber % size; + + DruidDataSource dataSource = dataSources.get(index); + return dataSource.getConnection(); } @Override