mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
add stat DiscardCount
This commit is contained in:
@@ -98,6 +98,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
|
||||
private ConnectionHolder[] connections;
|
||||
private int poolingCount = 0;
|
||||
private int activeCount = 0;
|
||||
private int discardCount = 0;
|
||||
private int notEmptyWaitThreadCount = 0;
|
||||
private int notEmptyWaitThreadPeak = 0;
|
||||
|
||||
@@ -132,6 +133,10 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
|
||||
this.resetStatEnable = resetStatEnable;
|
||||
}
|
||||
|
||||
public int getDiscardCount() {
|
||||
return discardCount;
|
||||
}
|
||||
|
||||
public void restart() {
|
||||
lock.lock();
|
||||
try {
|
||||
@@ -153,6 +158,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
|
||||
try {
|
||||
connectCount = 0;
|
||||
closeCount = 0;
|
||||
discardCount = 0;
|
||||
connectErrorCount = 0;
|
||||
recycleCount = 0;
|
||||
createConnectionCount = 0;
|
||||
@@ -410,7 +416,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
|
||||
return getConnectionDirect(maxWaitMillis);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public PooledConnection getPooledConnection() throws SQLException {
|
||||
return getConnection(maxWait);
|
||||
@@ -499,14 +505,10 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
|
||||
private void discardConnection(Connection realConnection) throws SQLException {
|
||||
JdbcUtils.close(realConnection);
|
||||
|
||||
try {
|
||||
lock.lockInterruptibly();
|
||||
} catch (InterruptedException e) {
|
||||
throw new SQLException("interrupt", e);
|
||||
}
|
||||
|
||||
lock.lock();
|
||||
try {
|
||||
activeCount--;
|
||||
discardCount++;
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
@@ -1421,5 +1423,4 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
|
||||
return x;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -70,4 +70,6 @@ public interface DruidDataSourceMBean extends DruidAbstractDataSourceMBean {
|
||||
ObjectName getObjectName();
|
||||
|
||||
void clearStatementCache() throws SQLException;
|
||||
|
||||
int getDiscardCount();
|
||||
}
|
||||
|
||||
@@ -223,6 +223,7 @@ public class DruidDataSourceStatManager implements DruidDataSourceStatManagerMBe
|
||||
map.put("LastErrorTime", dataSource.getLastErrorTime());
|
||||
map.put("LastCreateErrorTime", dataSource.getLastCreateErrorTime());
|
||||
map.put("CreateErrorCount", dataSource.getCreateErrorCount());
|
||||
map.put("DiscardCount", dataSource.getDiscardCount());
|
||||
|
||||
return new CompositeDataSupport(rowType, map);
|
||||
}
|
||||
@@ -295,6 +296,7 @@ public class DruidDataSourceStatManager implements DruidDataSourceStatManagerMBe
|
||||
// 40 -
|
||||
SimpleType.DATE, //
|
||||
SimpleType.DATE, //
|
||||
SimpleType.LONG, //
|
||||
SimpleType.LONG //
|
||||
//
|
||||
};
|
||||
@@ -359,7 +361,8 @@ public class DruidDataSourceStatManager implements DruidDataSourceStatManagerMBe
|
||||
// 40 -
|
||||
, "LastErrorTime", //
|
||||
"LastCreateErrorTime", //
|
||||
"CreateErrorCount" //
|
||||
"CreateErrorCount", //
|
||||
"DiscardCount", //
|
||||
//
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user