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; }