You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kf...@apache.org on 2017/04/21 06:28:26 UTC

svn commit: r1792167 - in /tomcat/trunk: java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptorMBean.java webapps/docs/changelog.xml

Author: kfujino
Date: Fri Apr 21 06:28:26 2017
New Revision: 1792167

URL: http://svn.apache.org/viewvc?rev=1792167&view=rev
Log:
Add features to get the statistics of the thread pool of the MessageDispatchInterceptor.
These statistics information can be acquired via JMX.

Modified:
    tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java
    tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptorMBean.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java?rev=1792167&r1=1792166&r2=1792167&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java Fri Apr 21 06:28:26 2017
@@ -17,6 +17,7 @@
 package org.apache.catalina.tribes.group.interceptors;
 
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 
@@ -278,4 +279,54 @@ public class MessageDispatchInterceptor
             addAndGetCurrentSize(-msg.getMessage().getLength());
         }
     }
+
+    // ---------------------------------------------- stats of the thread pool
+    /**
+     * Return the current number of threads that are managed by the pool.
+     * @return the current number of threads that are managed by the pool
+     */
+    public int getPoolSize() {
+        if (executor instanceof ThreadPoolExecutor) {
+            return ((ThreadPoolExecutor) executor).getPoolSize();
+        } else {
+            return -1;
+        }
+    }
+
+    /**
+     * Return the current number of threads that are in use.
+     * @return the current number of threads that are in use
+     */
+    public int getActiveCount() {
+        if (executor instanceof ThreadPoolExecutor) {
+            return ((ThreadPoolExecutor) executor).getActiveCount();
+        } else {
+            return -1;
+        }
+    }
+
+    /**
+     * Return the total number of tasks that have ever been scheduled for execution by the pool.
+     * @return the total number of tasks that have ever been scheduled for execution by the pool
+     */
+    public long getTaskCount() {
+        if (executor instanceof ThreadPoolExecutor) {
+            return ((ThreadPoolExecutor) executor).getTaskCount();
+        } else {
+            return -1;
+        }
+    }
+
+    /**
+     * Return the total number of tasks that have completed execution by the pool.
+     * @return the total number of tasks that have completed execution by the pool
+     */
+    public long getCompletedTaskCount() {
+        if (executor instanceof ThreadPoolExecutor) {
+            return ((ThreadPoolExecutor) executor).getCompletedTaskCount();
+        } else {
+            return -1;
+        }
+    }
+
 }

Modified: tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptorMBean.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptorMBean.java?rev=1792167&r1=1792166&r2=1792167&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptorMBean.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptorMBean.java Fri Apr 21 06:28:26 2017
@@ -34,4 +34,13 @@ public interface MessageDispatchIntercep
 
     public int getMaxThreads();
 
+    // pool stats
+    public int getPoolSize();
+
+    public int getActiveCount();
+
+    public long getTaskCount();
+
+    public long getCompletedTaskCount();
+
 }

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1792167&r1=1792166&r2=1792167&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Fri Apr 21 06:28:26 2017
@@ -75,8 +75,9 @@
     <changelog>
       <add>
         Add features to get the statistics of the thread pool of the
-        <code>Receiver</code> component. These statistics information can be
-        acquired via JMX. (kfujino)
+        <code>Receiver</code> component and
+        <code>MessageDispatchInterceptor</code>. These statistics information
+        can be acquired via JMX. (kfujino)
       </add>
       <add>
         Add <code>maxIdleTime</code> attribute to <code>NioReceiverMBean</code>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org