From d96b5a6df60f848a1a80b71eae69e24ec90d82bb Mon Sep 17 00:00:00 2001 From: wenshao Date: Wed, 7 Sep 2011 07:05:42 +0000 Subject: [PATCH] =?UTF-8?q?JMX=E5=A2=9E=E5=BC=BA?= 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@674 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../com/alibaba/druid/pool/DruidDataSource.java | 14 ++++++++++++++ .../alibaba/druid/pool/DruidDataSourceMBean.java | 2 ++ .../druid/stat/DruidDataSourceStatManager.java | 7 +++++++ .../stat/DruidDataSourceStatManagerMBean.java | 2 ++ 4 files changed, 25 insertions(+) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 86e407ab10..15d561aee4 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -88,6 +88,20 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat public DruidDataSource(){ } + + public void resetStat() { + lock.lock(); + try { + connectCount = 0; + closeCount = 0; + connectErrorCount = 0; + recycleCount = 0; + createConnectionCount = 0; + destroyCount = 0; + } finally { + lock.unlock(); + } + } public boolean isEnable() { return enable; diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java b/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java index 38f34e29e6..66af8b7c3a 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java @@ -29,4 +29,6 @@ public interface DruidDataSourceMBean extends DruidAbstractDataSourceMBean { int getWaitThreadCount(); int getLockQueueLength(); + + void resetStat(); } diff --git a/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManager.java b/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManager.java index 5646d8db3d..68199a4c16 100644 --- a/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManager.java +++ b/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManager.java @@ -40,6 +40,13 @@ public class DruidDataSourceStatManager implements DruidDataSourceStatManagerMBe return instances.keySet(); } + public void reset() { + final Set dataSources = getDruidDataSourceInstances(); + for (DruidDataSource dataSource : dataSources) { + dataSource.resetStat(); + } + } + public TabularData getDataSourceList() throws JMException { CompositeType rowType = getDruidDataSourceCompositeType(); String[] indexNames = rowType.keySet().toArray(new String[rowType.keySet().size()]); diff --git a/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManagerMBean.java b/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManagerMBean.java index 32dfc061f6..c5244310a4 100644 --- a/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManagerMBean.java +++ b/src/main/java/com/alibaba/druid/stat/DruidDataSourceStatManagerMBean.java @@ -5,5 +5,7 @@ import javax.management.openmbean.TabularData; public interface DruidDataSourceStatManagerMBean { + void reset(); + TabularData getDataSourceList() throws JMException; }