Author: kfujino
Date: Wed Jan 31 05:58:28 2018
New Revision: 1822759
URL: http://svn.apache.org/viewvc?rev=1822759&view=rev
Log:
Add MBean for StatementCache.
Added:
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCacheMBean.java
(with props)
Modified:
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java
tomcat/trunk/webapps/docs/changelog.xml
Modified:
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java?rev=1822759&r1=1822758&r2=1822759&view=diff
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java
Wed Jan 31 05:58:28 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/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCacheMBean.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCacheMBean.java?rev=1822759&view=auto
==============================================================================
---
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCacheMBean.java
(added)
+++
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCacheMBean.java
Wed Jan 31 05:58:28 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/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCacheMBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1822759&r1=1822758&r2=1822759&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Jan 31 05:58:28 2018
@@ -164,6 +164,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: [email protected]
For additional commands, e-mail: [email protected]