JMX增强

git-svn-id: http://code.alibabatech.com/svn/druid/trunk@685 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
wenshao
2011-09-07 17:22:44 +00:00
parent ee799e210f
commit 93550759d9
3 changed files with 19 additions and 2 deletions
@@ -76,6 +76,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
private long destroyCount = 0L;
private long removeAbandonedCount = 0L;
private long notEmptyWaitCount = 0L;
private long notEmptyWaitNanos = 0L;
// store
private ConnectionHolder[] connections;
@@ -104,6 +105,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
destroyCount = 0;
removeAbandonedCount = 0;
notEmptyWaitCount = 0;
notEmptyWaitNanos = 0;
} finally {
lock.unlock();
}
@@ -583,8 +585,10 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
}
try {
long startEstimate = estimate;
estimate = notEmpty.awaitNanos(estimate); // signal by recycle or creator
notEmptyWaitCount++;
notEmptyWaitNanos += (startEstimate - estimate);
if (!enable) {
connectErrorCount++;
@@ -946,6 +950,14 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
public long getNotEmptyWaitCount() {
return notEmptyWaitCount;
}
public long getNotEmptyWaitMillis() {
return notEmptyWaitNanos / (1000 * 1000);
}
public long getNotEmptyWaitNanos() {
return notEmptyWaitNanos;
}
public int getLockQueueLength() {
return lock.getQueueLength();
@@ -32,5 +32,9 @@ public interface DruidDataSourceMBean extends DruidAbstractDataSourceMBean {
long getNotEmptyWaitCount();
long getNotEmptyWaitMillis();
long getNotEmptyWaitNanos();
void resetStat();
}
@@ -98,6 +98,7 @@ public class DruidDataSourceStatManager implements DruidDataSourceStatManagerMBe
map.put("RemoveAbandonedCount", dataSource.getRemoveAbandonedCount());
map.put("NotEmptyWaitCount", dataSource.getNotEmptyWaitCount());
map.put("NotEmptyWaitNanos", dataSource.getNotEmptyWaitNanos());
return new CompositeDataSupport(rowType, map);
}
@@ -117,7 +118,7 @@ public class DruidDataSourceStatManager implements DruidDataSourceStatManagerMBe
SimpleType.INTEGER, SimpleType.INTEGER, SimpleType.INTEGER, SimpleType.BOOLEAN, SimpleType.BOOLEAN, //
SimpleType.BOOLEAN, SimpleType.LONG, SimpleType.LONG, SimpleType.LONG, SimpleType.STRING, //
SimpleType.STRING, SimpleType.INTEGER, SimpleType.STRING, SimpleType.STRING, SimpleType.LONG, //
SimpleType.LONG,
SimpleType.LONG, SimpleType.LONG,
//
};
@@ -128,7 +129,7 @@ public class DruidDataSourceStatManager implements DruidDataSourceStatManagerMBe
"InitialSize", "MaxActive", "MinIdle", "PoolPreparedStatements", "TestOnBorrow", //
"TestOnReturn", "MinEvictableIdleTimeMillis", "ConnectErrorCount", "CreateTimespanMillis", "DbType", //
"ValidationQuery", "ValidationQueryTimeout", "DriverClassName", "Username", "RemoveAbandonedCount", //
"NotEmptyWaitCount"
"NotEmptyWaitCount", "NotEmptyWaitNanos"
//
};