Author: kfujino Date: Tue Aug 25 06:39:51 2015 New Revision: 1697573 URL: http://svn.apache.org/r1697573 Log: Make sure the pool has been properly configured when attributes that related to the pool size are changed 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=1697573&r1=1697572&r2=1697573&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 Tue Aug 25 06:39:51 2015 @@ -418,26 +418,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<PooledConnection>(); @@ -504,6 +485,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/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=1697573&r1=1697572&r2=1697573&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 Tue Aug 25 06:39:51 2015 @@ -532,12 +532,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()); } @@ -562,6 +566,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()); } 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=1697573&r1=1697572&r2=1697573&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Tue Aug 25 06:39:51 2015 @@ -58,6 +58,14 @@ issues do not "pop up" wrt. others). --> <section name="Tomcat 7.0.65 (violetagg)"> + <subsection name="jdbc-pool"> + <changelog> + <fix> + Make sure the pool has been properly configured when attributes that + related to the pool size are changed via JMX. (kfujino) + </fix> + </changelog> + </subsection> </section> <section name="Tomcat 7.0.64 (violetagg)"> <subsection name="Catalina"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org