Author: kfujino Date: Wed Jan 31 06:01:51 2018 New Revision: 1822760 URL: http://svn.apache.org/viewvc?rev=1822760&view=rev Log: Add MBean for StatementCache.
Added: tomcat/tc8.5.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCacheMBean.java (with props) Modified: tomcat/tc8.5.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java tomcat/tc8.5.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc8.5.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java?rev=1822760&r1=1822759&r2=1822760&view=diff ============================================================================== --- tomcat/tc8.5.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java (original) +++ tomcat/tc8.5.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java Wed Jan 31 06:01:51 2018 @@ -25,17 +25,20 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; +import javax.management.ObjectName; + import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.jdbc.pool.ConnectionPool; import org.apache.tomcat.jdbc.pool.PoolProperties.InterceptorProperty; import org.apache.tomcat.jdbc.pool.PooledConnection; +import org.apache.tomcat.jdbc.pool.jmx.JmxUtil; /** * Interceptor that caches {@code PreparedStatement} and/or * {@code CallableStatement} instances on a connection. */ -public class StatementCache extends StatementDecoratorInterceptor { +public class StatementCache extends StatementDecoratorInterceptor implements StatementCacheMBean { private static final Log log = LogFactory.getLog(StatementCache.class); protected static final String[] ALL_TYPES = new String[] {PREPARE_STATEMENT,PREPARE_CALL}; protected static final String[] CALLABLE_TYPE = new String[] {PREPARE_CALL}; @@ -51,15 +54,19 @@ public class StatementCache extends Stat private PooledConnection pcon; private String[] types; + private ObjectName oname = null; + @Override public boolean isCachePrepared() { return cachePrepared; } + @Override public boolean isCacheCallable() { return cacheCallable; } + @Override public int getMaxCacheSize() { return maxCacheSize; } @@ -68,6 +75,7 @@ public class StatementCache extends Stat return types; } + @Override public AtomicInteger getCacheSize() { return cacheSize; } @@ -120,6 +128,10 @@ public class StatementCache extends Stat if (parent==null) { cacheSize = null; this.pcon = null; + if (oname != null) { + JmxUtil.unregisterJmx(oname); + oname = null; + } } else { cacheSize = cacheSizeMap.get(parent); this.pcon = con; @@ -128,6 +140,10 @@ public class StatementCache extends Stat new ConcurrentHashMap<>(); pcon.getAttributes().put(STATEMENT_CACHE_ATTR,cache); } + if (oname == null) { + String keyprop = ",JdbcInterceptor=" + getClass().getSimpleName(); + oname = JmxUtil.registerJmx(pcon.getObjectName(), keyprop, this); + } } } Added: tomcat/tc8.5.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCacheMBean.java URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCacheMBean.java?rev=1822760&view=auto ============================================================================== --- tomcat/tc8.5.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCacheMBean.java (added) +++ tomcat/tc8.5.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCacheMBean.java Wed Jan 31 06:01:51 2018 @@ -0,0 +1,10 @@ +package org.apache.tomcat.jdbc.pool.interceptor; + +import java.util.concurrent.atomic.AtomicInteger; + +public interface StatementCacheMBean { + public boolean isCachePrepared(); + public boolean isCacheCallable(); + public int getMaxCacheSize(); + public AtomicInteger getCacheSize(); +} Propchange: tomcat/tc8.5.x/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCacheMBean.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: tomcat/tc8.5.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/webapps/docs/changelog.xml?rev=1822760&r1=1822759&r2=1822760&view=diff ============================================================================== --- tomcat/tc8.5.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc8.5.x/trunk/webapps/docs/changelog.xml Wed Jan 31 06:01:51 2018 @@ -103,6 +103,9 @@ <add> Add MBean for <code>PooledConnection</code>. (kfujino) </add> + <add> + Add MBean for <code>StatementCache</code>. (kfujino) + </add> </changelog> </subsection> </section> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org