diff --git a/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSource.java index bd9cb54630..9922fe80b5 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSource.java @@ -159,6 +159,38 @@ public class DruidC3P0WrapDataSource implements DataSource, DruidC3P0WrapDataSou dataSource.setValidationQuery(preferredTestQuery); } + public String getDataSourceName() { + return dataSource.getName(); + } + + public int getNumConnections() { + return dataSource.getActiveCount() + dataSource.getPoolingCount(); + } + + public int getNumIdleConnections() { + return dataSource.getPoolingCount(); + } + + public int getNumBusyConnections() { + return dataSource.getActiveCount(); + } + + public int getNumUnclosedOrphanedConnections() { + return 0; + } + + public int getNumConnectionsDefaultUser() { + return getNumConnections(); + } + + public int getNumIdleConnectionsDefaultUser() { + return getNumIdleConnections(); + } + + public int getNumBusyConnectionsDefaultUser() { + return getNumBusyConnections(); + } + // ///////////////// @Override @@ -181,6 +213,11 @@ public class DruidC3P0WrapDataSource implements DataSource, DruidC3P0WrapDataSou return dataSource.getLockQueueLength(); } + @Override + public void close() { + dataSource.close(); + } + // /////////////// private int maxStatementsPerConnection; diff --git a/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSourceMBean.java b/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSourceMBean.java index 8f96f3dea8..1c3e14ce46 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSourceMBean.java +++ b/src/main/java/com/alibaba/druid/pool/DruidC3P0WrapDataSourceMBean.java @@ -23,6 +23,14 @@ public interface DruidC3P0WrapDataSourceMBean { boolean isTestConnectionOnCheckin(); String getPreferredTestQuery(); + + int getNumIdleConnections(); + + int getNumConnections(); + + String getDataSourceName(); + + int getNumBusyConnections(); // ////////// @@ -35,4 +43,6 @@ public interface DruidC3P0WrapDataSourceMBean { int getWaitThreadCount(); int getLockQueueLength(); + + void close(); }