From 90015e4e6f24815a211aa5988d2faff6ac701b31 Mon Sep 17 00:00:00 2001 From: wenshao Date: Sun, 25 Sep 2011 02:37:51 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=9B=91=E6=8E=A7?= 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@903 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../com/alibaba/druid/pool/DruidDataSource.java | 15 ++++++++++++--- .../alibaba/druid/pool/DruidDataSourceMBean.java | 10 ++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index c6d83aed2b..89b9476088 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -81,13 +81,14 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat private long notEmptyWaitCount = 0L; private long notEmptySignalCount = 0L; private long notEmptyWaitNanos = 0L; + private int activePeak = 0; + private int poolingPeak = 0; // store private ConnectionHolder[] connections; private int poolingCount = 0; private int activeCount = 0; private int notEmptyWaitThreadCount = 0; - private int activePeak = 0; // threads private CreateConnectionThread createConnectionThread; @@ -127,7 +128,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat notEmptyWaitCount = 0; notEmptySignalCount = 0L; notEmptyWaitNanos = 0; - + activePeak = 0; } finally { lock.unlock(); @@ -708,6 +709,10 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat lock.unlock(); } } + + public int getPoolingPeak() { + return poolingPeak; + } public long getRecycleCount() { return recycleCount; @@ -803,6 +808,10 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat lock.lock(); try { connections[poolingCount++] = new ConnectionHolder(DruidDataSource.this, connection); + + if (poolingCount > poolingPeak) { + poolingPeak = poolingCount; + } errorCount = 0; // reset errorCount @@ -1044,7 +1053,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat public int getLockQueueLength() { return lock.getQueueLength(); } - + public int getActivePeak() { return activePeak; } diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java b/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java index d63c9a6168..3b4a49b730 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSourceMBean.java @@ -51,5 +51,15 @@ public interface DruidDataSourceMBean extends DruidAbstractDataSourceMBean { String getVersion(); + /** + * ActiveCount峰值 + * @return + */ int getActivePeak(); + + /** + * PoolingCount峰值 + * @return + */ + int getPoolingPeak(); }