我们最近从JDK6u20(Linux,32位和64位)升级到JDK6u23。从那时起,我们不再可以使用工具 jstack 和 jstat 从运行的进程中获取监视信息。如果我们切换回JDK6u20,一切正常。
我们正在运行Tomcat6。根据此论坛帖子,其他人也有相同的问题:http : //forums.oracle.com/forums/thread.jspa?threadID=2151967&tstart=0
运行简单的简单Java流程并使用工具即可。
Jstack说:无法打开套接字文件:目标进程未响应或未加载HotSpot VM。当目标进程未响应时,可以使用-F选项。
Jstat说:找不到19799
使用Jps根本不显示正在运行的进程,因此我想问题是JDK6u23和JDK6u24更普遍。它具有一个新的Hotspot引擎。也许某些东西不能与Tomcat和Hotspot v19一起使用。
任何的想法?感谢帮助。
PS当然,我们以同一用户身份运行它,而我们没有进行任何其他更改。只有JDK。
在Oracle论坛中找到了可能的答案:
虽然6u23 / 24确实引入了此问题,但这不是jps中的错误。而是VM本身的行为发生了变化。在GNU / Linux上,Jps等似乎只看/ tmp,但不一定看您的CATALINA_TMPDIR。如果设置或不设置,请尝试导出CATALINA_TMPDIR = / tmp,将其转换为“ -Djava.io.tmpdir = / tmp”,并且在重新启动Tomcat进程后,您应该将Tomcat的数据显示为“ / tmp / hsperfdata_ /”,而Jps很可能会再次工作。