2011-03-01 52 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

相關問題