diff --git a/src/main/java/com/alibaba/druid/mock/MockConnection.java b/src/main/java/com/alibaba/druid/mock/MockConnection.java index 6e69d46bca..362a69f12e 100644 --- a/src/main/java/com/alibaba/druid/mock/MockConnection.java +++ b/src/main/java/com/alibaba/druid/mock/MockConnection.java @@ -66,7 +66,9 @@ public class MockConnection implements Connection { this.driver = driver; this.connectProperties = connectProperties; - this.id = driver.generateConnectionId(); + if (driver != null) { + this.id = driver.generateConnectionId(); + } } public long getId() { diff --git a/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java index b0cd135105..669fa27248 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java @@ -62,7 +62,7 @@ public abstract class DruidAbstractDataSource implements DruidAbstractDataSource public final static boolean DEFAULT_WHILE_IDLE = false; public static final long DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS = -1L; public static final long DEFAULT_TIME_BETWEEN_CONNECT_ERROR_MILLIS = 30 * 1000; - public static final int DEFAULT_NUM_TESTS_PER_EVICTION_RUN = 1; + public static final int DEFAULT_NUM_TESTS_PER_EVICTION_RUN = 3; /** * The default value for {@link #getMinEvictableIdleTimeMillis}. diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 507cc44840..c2ae2ee8d6 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -761,6 +761,9 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat } finally { lock.unlock(); } + if (LOG.isDebugEnabled()) { + LOG.debug("checked " + size); + } } for (ConnectionHolder item : evictList) { diff --git a/src/test/java/com/alibaba/druid/pool/dbcp/TestIdle.java b/src/test/java/com/alibaba/druid/pool/dbcp/TestIdle.java index 28fadb2cb2..67ee3a83c3 100644 --- a/src/test/java/com/alibaba/druid/pool/dbcp/TestIdle.java +++ b/src/test/java/com/alibaba/druid/pool/dbcp/TestIdle.java @@ -22,11 +22,11 @@ public class TestIdle extends TestCase { dataSource.setUrl("jdbc:mock:xxx"); dataSource.setDriverClassName("com.alibaba.druid.mock.MockDriver"); dataSource.setInitialSize(1); - dataSource.setMaxActive(4); - dataSource.setMaxIdle(4); + dataSource.setMaxActive(5); + dataSource.setMaxIdle(5); dataSource.setMinIdle(0); dataSource.setMinEvictableIdleTimeMillis(5000 * 1); - dataSource.setTimeBetweenEvictionRunsMillis(1000); + dataSource.setTimeBetweenEvictionRunsMillis(500); dataSource.setTestWhileIdle(true); dataSource.setTestOnBorrow(false); dataSource.setValidationQuery("SELECT 1"); diff --git a/src/test/resources/log4j.properties b/src/test/resources/log4j.properties index 64b595c698..bafd24e04a 100644 --- a/src/test/resources/log4j.properties +++ b/src/test/resources/log4j.properties @@ -27,6 +27,6 @@ log4j.category.java.sql.ResultSet=DEBUG log4j.category.org.codehaus.xfire=INFO log4j.category.httpclient=INFO log4j.category.org.apache.struts.action.ActionServlet=ERROR -log4j.category.com.alibaba.druid.mock=ERROR +#log4j.category.com.alibaba.druid.mock=ERROR log4j.rootLogger=TRACE,CONSOLE