mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
JMX增强
git-svn-id: http://code.alibabatech.com/svn/druid/trunk@685 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
@@ -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"
|
||||
//
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user