来自Tomcat的ThreadDump集合

时间:2016-02-29 03:10:17

标签: java tomcat

我正在尝试获取JVM的threaddump。我用top命令和ps aux来查找进程id和pid的用户[root]。

所以我运行以下命令来获取threaddump

sudo -u root jstack -F PID> threaddump1.txt

但是我得到了以下异常---------------------------------

附加到进程的错误:看起来不是HotSpot VM (找不到符号" gHotSpotVMTypes"在远程过程中)

sun.jvm.hotspot.debugger.DebuggerException: Doesn't appear to be a HotSpot VM (could not find symbol "gHotSpotVMTypes" in remote process)**
    at sun.jvm.hotspot.HotSpotAgent.setupVM(HotSpotAgent.java:411)
    at sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:305)
    at sun.jvm.hotspot.HotSpotAgent.attach(HotSpotAgent.java:140)
    at sun.jvm.hotspot.tools.Tool.start(Tool.java:185)
    at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
    at sun.jvm.hotspot.tools.JStack.main(JStack.java:92)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at sun.tools.jstack.JStack.runJStackTool(JStack.java:140)
    at sun.tools.jstack.JStack.main(JStack.java:106)

非常感谢任何帮助或建议或意见。

1 个答案:

答案 0 :(得分:2)

确定。我终于可以找出问题所在。 tomcat在docker下运行。所以我必须在docker中运行命令。我按照下面提到的步骤进行了操作。

1. Access the docker
2. Find the PID of tomcat by running command within docker.
3. Run command /<oracle path>/bin/jstack PID >> filename