Author: kfujino Date: Wed Jul 22 06:11:46 2015 New Revision: 1692221 URL: http://svn.apache.org/r1692221 Log: Add support for stopping the pool cleaner via JMX.
Modified: tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java?rev=1692221&r1=1692220&r2=1692221&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java (original) +++ tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java Wed Jul 22 06:11:46 2015 @@ -514,6 +514,12 @@ public class ConnectionPool { } //end if } + public void terminatePoolCleaner() { + if (poolCleaner!= null) { + poolCleaner.stopRunning(); + poolCleaner = null; + } + } //=============================================================================== // CONNECTION POOLING IMPL LOGIC Modified: tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java?rev=1692221&r1=1692220&r2=1692221&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java (original) +++ tomcat/tc7.0.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java Wed Jul 22 06:11:46 2015 @@ -552,8 +552,9 @@ public class ConnectionPool extends Noti boolean wasEnabled = getPoolProperties().isPoolSweeperEnabled(); getPoolProperties().setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); boolean shouldBeEnabled = getPoolProperties().isPoolSweeperEnabled(); - //make sure pool cleaner starts when it should + //make sure pool cleaner starts/stops when it should if (!wasEnabled && shouldBeEnabled) pool.initializePoolCleaner(getPoolProperties()); + else if (wasEnabled && !shouldBeEnabled) pool.terminatePoolCleaner(); } @@ -580,8 +581,9 @@ public class ConnectionPool extends Noti boolean wasEnabled = getPoolProperties().isPoolSweeperEnabled(); getPoolProperties().setRemoveAbandoned(removeAbandoned); boolean shouldBeEnabled = getPoolProperties().isPoolSweeperEnabled(); - //make sure pool cleaner starts when it should + //make sure pool cleaner starts/stops when it should if (!wasEnabled && shouldBeEnabled) pool.initializePoolCleaner(getPoolProperties()); + else if (wasEnabled && !shouldBeEnabled) pool.terminatePoolCleaner(); } @@ -590,8 +592,9 @@ public class ConnectionPool extends Noti boolean wasEnabled = getPoolProperties().isPoolSweeperEnabled(); getPoolProperties().setRemoveAbandonedTimeout(removeAbandonedTimeout); boolean shouldBeEnabled = getPoolProperties().isPoolSweeperEnabled(); - //make sure pool cleaner starts when it should + //make sure pool cleaner starts/stops when it should if (!wasEnabled && shouldBeEnabled) pool.initializePoolCleaner(getPoolProperties()); + else if (wasEnabled && !shouldBeEnabled) pool.terminatePoolCleaner(); } @@ -618,8 +621,9 @@ public class ConnectionPool extends Noti boolean wasEnabled = getPoolProperties().isPoolSweeperEnabled(); getPoolProperties().setTestWhileIdle(testWhileIdle); boolean shouldBeEnabled = getPoolProperties().isPoolSweeperEnabled(); - //make sure pool cleaner starts when it should + //make sure pool cleaner starts/stops when it should if (!wasEnabled && shouldBeEnabled) pool.initializePoolCleaner(getPoolProperties()); + else if (wasEnabled && !shouldBeEnabled) pool.terminatePoolCleaner(); } @@ -628,8 +632,9 @@ public class ConnectionPool extends Noti boolean wasEnabled = getPoolProperties().isPoolSweeperEnabled(); getPoolProperties().setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); boolean shouldBeEnabled = getPoolProperties().isPoolSweeperEnabled(); - //make sure pool cleaner starts when it should + //make sure pool cleaner starts/stops when it should if (!wasEnabled && shouldBeEnabled) pool.initializePoolCleaner(getPoolProperties()); + else if (wasEnabled && !shouldBeEnabled) pool.terminatePoolCleaner(); } Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1692221&r1=1692220&r2=1692221&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Jul 22 06:11:46 2015 @@ -123,6 +123,9 @@ <fix> Fix potential NPE in <code>QueryTimeoutInterceptor</code>. (kfujino) </fix> + <fix> + Add support for stopping the pool cleaner via JMX. (kfujino) + </fix> </changelog> </subsection> <subsection name="Other"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org