2011-03-01 54 views
18

我们最近从JDK6u20(Linux,32位和64位)升级到JDK6u23。此后,我们不能再使用工具jstackjstat从运行过程中获取监控信息。如果我们切换回JDK6u20,一切正常。Jstack和Jstat停止升级到JDK6u23

我们正在运行Tomcat 6,按照这个论坛的帖子,别人有同样的问题: http://forums.oracle.com/forums/thread.jspa?threadID=2151967&tstart=0

运行简单的纯Java进程,并使用该工具的作品。

Jstack说:无法打开套接字文件:目标进程没有响应或没有加载HotSpot虚拟机当目标进程没有响应时可以使用-F选项。

Jstat说:19799找不到

使用JPS不显示正在运行的进程可言,所以我想这个问题是多与JDK6u23也JDK6u24一般性质的。它有一个新的热点引擎。也许有些东西不能与Tomcat和那个Hotspot v19结合使用。

有什么想法?帮助表示赞赏。

P.S.当然,我们以同样的用户身份运行它,而且我们没有改变其他任何东西。只有JDK。

+0

奇怪,从来没有问题瓦特/ jstack,你有没有尝试过jstack (无选项)? – bestsss 2011-03-03 22:30:36

+0

是的,我们只尝试过,并没有奏效。但看下面,找到它。这在JDK中发生了变化,当Tomcat就位时,它就成了一个问题。 – ReneS 2011-03-04 14:33:15

回答

12

发现了一个可能的答案在Oracle论坛:

虽然这是事实,6u23/24介绍这个问题,它不是JPS的错误。而是改变虚拟机本身的行为。在GNU/Linux Jps和类似似乎只看/ tmp,但不一定是你的CATALINA_TMPDIR。如果设置或不设置,则尝试导出CATALINA_TMPDIR =/tmp,将其转换为“-Djava.io.tmpdir =/tmp”,并且在重新启动Tomcat进程后,应该将Tomcat的数据视为“/ tmp/hsperfdata_ /”,并且Jps很可能再次工作。

+0

这就是答案。有用。刚刚尝试过。但是到目前为止依赖于CATALINA_TMPDIR很难使其工作,因为在运行大量服务的情况下,最终可能会在/ tmp中产生冲突。 – ReneS 2011-03-04 14:29:37

+3

我通过将catalina的临时目录的位置传递给JPS来解决此问题,依此类推:jps -J-Djava.io.tmpdir =/opt/tomcat/instances/solr/temp – mogsie 2011-03-20 10:02:58

+1

更新已在更新25中恢复 – 2011-05-11 21:57:30

相关问题