Tomcat JMX Monitoring – Busy Threads?

I’m trying to monitor Tomcat 6.0 using JMX. Specifically, I want to monitor the number of active threads servicing requests so I can get an alert if it approaches the maximum. While I have JMX monitoring working in general, I can’t seem to get the number of threads. Everything I have read suggests looking at:

Catalina:type=ThreadPool,name=http-8080

And examining the currentThreadsBusy attribute. Unfortunately, I only ever seem to get -1 as a value. I’ve tried it on five different Tomcat instances and I always get -1.

Is there something I’m missing? Should I be looking at a different value?

EDIT #1

I’m using an Executor, so I checked the activeCount attribute in the Executor and it always returns 0.

Answer

The value can become negative if you’re using an Executor, i.e. a thread pool shared between components. If you have configured an Executor (verify this in the server.xml), you can get the value you’re interested in from the Executor’s attribute activeCount.

With Tomcat 7 you wouldn’t have this problem, I believe.

Attribution
Source : Link , Question Author : organicveggie , Answer Author : d.hoeffer

Leave a Comment