2016-03-08 44 views
1

我試圖生成WebLogic控制檯線程轉儲(服務器 - > - >監控 - >主題 - >轉儲線程堆棧錯誤生成線程轉儲

我得到以下信息:Server must be running before thread stacks can be displayed.

但是,當我嘗試使用產生kill -3 <PID>線程轉儲,它就會產生

OS:Centos的 的Weblogic:WebLogic Server的版本:10.3.6.0

任何人都可以p租賃幫助我理解爲什麼線程轉儲不能從控制檯生成,爲什麼我收到消息說服務器必須正在運行。

注意:服務器處於運行狀態。

+0

您確定要嘗試轉儲到正在運行的服務器嗎? 也許你正在用「kill」命令管理服務器 – devwebcl

+0

我正在獲取有關應用程序線程信息的轉儲。我可以看到線程轉儲中提到的應用程序類(當我使用kill時)。 –

+0

我正在使用sun jdk。我應該使用jrockit嗎?只有jrockit提供了這個功能,或者這也是爲sun jdk而存在的? –

回答

0

當您從控制檯執行線程轉儲命令時,AdminServer和受控服務器通信可能存在問題。

控制檯使用WLST捕獲線程轉儲,並在生成線程轉儲之前檢查受管服務器狀態。可能是Admin Server無法獲取Managed Server的當前狀態,因此您會看到該錯誤。

建議採用線程轉儲的方式是OS命令(kill -3)和JDK工具,jstack for hostpot和jrcmd用於JRockit。從控制檯獲取的線程轉儲可能沒有與鎖相關的信息,並且如果線程轉儲太長,它可能會被截斷

+0

嘗試使用jstack {pid}> stack-trace.log –

+0

我可以從命令行獲取線程轉儲。要求是從weblogic控制檯本身獲取它。 –

+0

在這種情況下,管理服務器無法識別託管服務器的狀態,因此您會看到錯誤。你能檢查管理日誌並粘貼在這裏嗎? –