Author: kfujino Date: Tue Aug 25 06:36:48 2015 New Revision: 1697571 URL: http://svn.apache.org/r1697571 Log: Make sure the pool has been properly configured when attributes that related to the pool size are changed via JMX.
Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java?rev=1697571&r1=1697570&r2=1697571&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java (original) +++ tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java Tue Aug 25 06:36:48 2015 @@ -416,26 +416,7 @@ public class ConnectionPool { poolProperties = properties; //make sure the pool is properly configured - if (properties.getMaxActive()<1) { - log.warn("maxActive is smaller than 1, setting maxActive to: "+PoolProperties.DEFAULT_MAX_ACTIVE); - properties.setMaxActive(PoolProperties.DEFAULT_MAX_ACTIVE); - } - if (properties.getMaxActive()<properties.getInitialSize()) { - log.warn("initialSize is larger than maxActive, setting initialSize to: "+properties.getMaxActive()); - properties.setInitialSize(properties.getMaxActive()); - } - if (properties.getMinIdle()>properties.getMaxActive()) { - log.warn("minIdle is larger than maxActive, setting minIdle to: "+properties.getMaxActive()); - properties.setMinIdle(properties.getMaxActive()); - } - if (properties.getMaxIdle()>properties.getMaxActive()) { - log.warn("maxIdle is larger than maxActive, setting maxIdle to: "+properties.getMaxActive()); - properties.setMaxIdle(properties.getMaxActive()); - } - if (properties.getMaxIdle()<properties.getMinIdle()) { - log.warn("maxIdle is smaller than minIdle, setting maxIdle to: "+properties.getMinIdle()); - properties.setMaxIdle(properties.getMinIdle()); - } + checkPoolConfiguration(properties); //make space for 10 extra in case we flow over a bit busy = new LinkedBlockingQueue<>(); @@ -502,6 +483,29 @@ public class ConnectionPool { closed = false; } + public void checkPoolConfiguration(PoolConfiguration properties) { + //make sure the pool is properly configured + if (properties.getMaxActive()<1) { + log.warn("maxActive is smaller than 1, setting maxActive to: "+PoolProperties.DEFAULT_MAX_ACTIVE); + properties.setMaxActive(PoolProperties.DEFAULT_MAX_ACTIVE); + } + if (properties.getMaxActive()<properties.getInitialSize()) { + log.warn("initialSize is larger than maxActive, setting initialSize to: "+properties.getMaxActive()); + properties.setInitialSize(properties.getMaxActive()); + } + if (properties.getMinIdle()>properties.getMaxActive()) { + log.warn("minIdle is larger than maxActive, setting minIdle to: "+properties.getMaxActive()); + properties.setMinIdle(properties.getMaxActive()); + } + if (properties.getMaxIdle()>properties.getMaxActive()) { + log.warn("maxIdle is larger than maxActive, setting maxIdle to: "+properties.getMaxActive()); + properties.setMaxIdle(properties.getMaxActive()); + } + if (properties.getMaxIdle()<properties.getMinIdle()) { + log.warn("maxIdle is smaller than minIdle, setting maxIdle to: "+properties.getMinIdle()); + properties.setMaxIdle(properties.getMinIdle()); + } + } public void initializePoolCleaner(PoolConfiguration properties) { //if the evictor thread is supposed to run, start it now Modified: tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java?rev=1697571&r1=1697570&r2=1697571&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java (original) +++ tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java Tue Aug 25 06:36:48 2015 @@ -531,12 +531,16 @@ public class ConnectionPool extends Noti @Override public void setMaxActive(int maxActive) { getPoolProperties().setMaxActive(maxActive); + //make sure the pool is properly configured + pool.checkPoolConfiguration(getPoolProperties()); } @Override public void setMaxIdle(int maxIdle) { getPoolProperties().setMaxIdle(maxIdle); + //make sure the pool is properly configured + pool.checkPoolConfiguration(getPoolProperties()); } @@ -561,6 +565,8 @@ public class ConnectionPool extends Noti @Override public void setMinIdle(int minIdle) { getPoolProperties().setMinIdle(minIdle); + //make sure the pool is properly configured + pool.checkPoolConfiguration(getPoolProperties()); } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org