JMXを使用してTomcat6.0を監視しようとしています。具体的には、リクエストを処理するアクティブなスレッドの数を監視して、最大数に近づいたときにアラートを受け取ることができるようにします。 JMXモニタリングは一般的に機能していますが、スレッド数を取得できないようです。私が読んだすべてのものは、見ることを示唆しています:
Catalina:type=ThreadPool,name=http-8080
そして、currentThreadsBusy属性を調べます。残念ながら、私は値として-1しか得られないようです。 5つの異なるTomcatインスタンスで試してみましたが、常に-1になります。
足りないものはありますか?別の値を見るべきですか?
編集#1
エグゼキュータを使用しているので、エグゼキュータのactiveCount属性を確認すると、常に0が返されます。
エグゼキュータ、つまりコンポーネント間で共有されるスレッドプールを使用している場合、値は負になる可能性があります。エグゼキュータを設定した場合(server.xmlでこれを確認してください)、エグゼキュータの属性activeCountから目的の値を取得できます。
Tomcat 7を使用すれば、この問題は発生しないと思います。