tomcat - 在不重启 tomcat 的情况下获取应用程序的线程转储

标签 tomcat jmx jconsole jvisualvm jstack

我必须在作为服务运行的 tomcat 中创建 Web 应用程序的线程转储,而无需重新启动 tomcat。我尝试附加 jconsole、jvisualvm、jstack,但没有成功。

  • Tomcat 未启用 jmx 远程。 (但无法引入属性——无法重启)
  • 我尝试从与服务相同的用户执行应用程序,更改 TEMP、TMP 文件夹
  • 我想在本地执行它 - 在与 tomcat 相同的服务器上,因为不需要配置(因此不需要重新启动)(“注意:仅当您要远程监视 Tomcat 时才需要此配置。如果您将使用运行 Tomcat 的同一个用户在本地监控它。”)
  • 在 jConsole 进程中显示为灰色,有时不可见 - 无法附加它
  • 在 jStack 中:内存不足或附加权限不足
  • Tomcat 在 Windows 机器上运行

有什么想法吗?

最佳答案

我会推荐 jcmd,但我认为它与 jstat 和其他工具在本地附加方面存在相同的问题。

根据以下两个谷歌命中,“psexec -s jstack PID”似乎是一个解决方案 (我没试过)

https://www.assetbank.co.uk/support/documentation/knowledge-base/how-to-take-a-java-thread-dump/ https://access.redhat.com/solutions/19170

关于tomcat - 在不重启 tomcat 的情况下获取应用程序的线程转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27174206/

相关文章:

jmx - 调用 JBoss MBean 函数来获取 threaddump

java - 如何在不对 IP 进行硬编码的情况下从本地主机外部访问 Java RMI/JMX?

java - 如何在 Websphere 中启用 JMX?

java - 使用 jconsole 时 Java 转储堆文件的位置?

JMX 从 JConsole 监控 Tomcat 时出现 java.lang.SecurityException

apache - 部署在代理后面时,Grails 会生成正确的链接

java - org.apache.axiom.om 中的 "om"是什么意思?

java - 未收到嵌入式 Jetty 应用程序的 JMX 通知

ruby-on-rails - JavaMelody 与 JRuby on Rails + Tomcat

java - Puppet:无法找到包 tomcat