JMX 経由の監視に tomcat 6 と HypericHQ を使用しています。
問題は次のとおりです。
ハイパーリック、残業、何百ものjmx接続を開き、それらを閉じることはありません..数時間後、Tomcatサーバーは何もせずに100%のCPUを使用しています.
ハイパーリック エージェントを停止すると、Tomcat は 0 ~ 1% の CPU に戻ります。
仮想 vm は次のように表示されます。
http://forums.hyperic.com/jiveforums/servlet/JiveServlet/download/1-11619-37096-2616/Capture.PNG
これがハイパーリックな問題かどうかはわかりませんが、Tomcat/Java 構成を介して修正するオプションがあるのだろうか? これがハイパーリックの問題なのか、Tomcat/Java の構成の問題なのか、私にはわかりません。これは、他の標準的な Java デーモンでハイパーリックを使用すると、同じ接続リークの問題が発生しないためです。
JMX は Spring を使用して公開されており、JMX クライアント (JConsole/VisualVM) との接続時にうまく機能します。クライアントを閉じると、接続数が 1 つ減っていることがわかります。
Java 構成でこれを修正するためにできることはありますか? (X 秒以上開いている接続を強制的に閉じるには?)
もう 1 つ、Tomcat では (ときどき) 次のメッセージが表示されます (hyperic の実行中)。
Mar 7, 2011 11:30:00 AM ServerCommunicatorAdmin reqIncoming
WARNING: The server has decided to close this client connection.
ありがとう