0

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

  • 它被 FireDaemon 盯着,所以我没有一个控制台窗口可以在其中进行 ctrl-break。

  • 它在 java 1.5 下运行,所以 jstack 不能工作。

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

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

4

2 回答 2

1

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

实际上有一种方法可以在 Server Info MBean 中从 jmx-console 转储线程,请参阅使用 JMX 控制台生成线程转储

于 2008-11-21T14:05:27.040 回答
0

您可以只编写一个 jsp 并Thread.getAllStackTraces()以合适的格式打印出堆栈跟踪元素。然后随时点击该 jsp 的 URL 将为您提供当时所有线程的堆栈转储。

于 2008-11-21T12:24:09.087 回答