如何在 Windows 上的 JBoss 4.0.5 中进行线程转储

问题描述 投票:0回答:3

我正在 Windows 2003 x64 上运行 JBoss 4.0.5,想知道是否有任何方法可以获取所有线程的转储?

  • 它与 FireDaemon 一起启动,所以我没有可以 ctrl-break 的控制台窗口。

  • 它在java 1.5下运行,所以jstack将无法工作。

  • 我尝试了一些有人制作的名为sendsignal.exe的程序,我认为它实际上使JBoss崩溃了(不确定,但不会再尝试一次),如果这是因为JBoss在win x64下运行或者因为它作为LocalSystem运行并且我只能访问我不认识的“普通”用户。它实际上可以在我的笔记本电脑上运行,但它是 32 位的,并且我以与 JBoss 相同的用户身份运行。

有人还有其他可行的想法吗?

jboss stack-trace
3个回答
1
投票

我实际上找到了比Gowri更好的方法 建议(在开始实施jsp之后)。

实际上有一种方法可以从服务器信息 MBean 中的 jmx-console 转储线程,请参阅使用 JMX 控制台生成线程转储


0
投票

您可以编写一个执行

Thread.getAllStackTraces()
操作的 jsp,并以合适的格式打印出 stacktracelements。然后,随时点击该 jsp 的 URL 即可获得当时所有线程的堆栈转储。


0
投票

打开CMD并转到目录“cd F:\Kronos\jdk in”并输入以下命令:jstack > F:\Kronos\JBossThreadDump\logs hread_dump.txt

PID 可以在任务管理器的详细信息选项卡中找到。

例如:jstack 156 > F:\Kronos\JBossThreadDump\logs hread_dump.txt

© www.soinside.com 2019 - 2024. All rights reserved.