From 48c36b5621effc6d70f31a385e8e2462915e30c2 Mon Sep 17 00:00:00 2001 From: wenshao Date: Fri, 9 Dec 2011 13:56:17 +0800 Subject: [PATCH] ha --- .../alibaba/druid/pool/DruidDataSource.java | 1 - .../alibaba/druid/pool/ha/HADataSource.java | 6 +++++ .../druid/pool/ha/HADataSourceMBean.java | 22 ++++++++++--------- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 8b960bf54a..9d2732682e 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -30,7 +30,6 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; -import javax.management.ObjectName; import javax.naming.NamingException; import javax.naming.Reference; import javax.naming.Referenceable; 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 63ef3071a9..253a0ff1e9 100644 --- a/src/main/java/com/alibaba/druid/pool/ha/HADataSource.java +++ b/src/main/java/com/alibaba/druid/pool/ha/HADataSource.java @@ -87,6 +87,12 @@ public class HADataSource extends MultiDataSource implements HADataSourceMBean, slave.setEnable(value); } + + public void switchMasterSlave() { + DruidDataSource tmp = this.getMaster(); + this.setMaster(this.getSlave()); + this.setSlave(tmp); + } public synchronized void setDataSources(List dataSources) { throw new UnsupportedOperationException(); diff --git a/src/main/java/com/alibaba/druid/pool/ha/HADataSourceMBean.java b/src/main/java/com/alibaba/druid/pool/ha/HADataSourceMBean.java index b5c46d9ec8..fcb304e81d 100644 --- a/src/main/java/com/alibaba/druid/pool/ha/HADataSourceMBean.java +++ b/src/main/java/com/alibaba/druid/pool/ha/HADataSourceMBean.java @@ -1,17 +1,19 @@ package com.alibaba.druid.pool.ha; public interface HADataSourceMBean { - long getMasterConnectCount(); - - long getSlaveConnectCount(); + long getMasterConnectCount(); - boolean isMasterEnable(); + long getSlaveConnectCount(); - void setMasterEnable(boolean value); + boolean isMasterEnable(); - boolean isSlaveEnable(); - - void setSlaveEnable(boolean value); - - void resetStat(); + void setMasterEnable(boolean value); + + boolean isSlaveEnable(); + + void setSlaveEnable(boolean value); + + void switchMasterSlave(); + + void resetStat(); }