我正在使用 tomcat 6 和 HypericHQ 通过 JMX 进行监控。
问题如下:
hyperic,超时,打开数百个 jmx 连接并且从不关闭它们.. 几个小时后,我们的 tomcat 服务器正在使用 100% cpu 而没有做任何事情。
一旦我停止 hyperic agent,tomcat 将回到 0-1% cpu ..
这是我们看到的虚拟虚拟机:
http://forums.hyperic.com/jiveforums/servlet/JiveServlet/download/1-11619-37096-2616/Capture.PNG
我不知道这是否是一个超级问题,但我想知道是否有一个选项可以通过 tomcat/java 配置来修复它?我不知道这是 hyperic 还是 tomcat/java 配置问题的原因是,当我们在其他标准 java 守护程序上使用 hyperic 时,它没有相同的连接泄漏问题。
JMX 使用 Spring 公开,并且在与 JMX 客户端 (JConsole/VisualVM) 连接时效果很好。当我关闭客户端时,我看到连接数减少了一个。
我们有什么办法可以通过 java 配置来解决这个问题?(强制它关闭打开超过 X 秒的连接?)
还有一件事,在 tomcat 中,我们(不时地)看到以下消息(在 hyperic 运行时):
Mar 7, 2011 11:30:00 AM ServerCommunicatorAdmin reqIncoming
WARNING: The server has decided to close this client connection.
谢谢