【问题标题】:Apache Tomcat Thread Dump Programmatically以编程方式转储 Apache Tomcat 线程
【发布时间】:2014-08-22 20:36:59
【问题描述】:

我已经搜索和搜索,希望有人可以帮助我解决这个问题。

目前我们有一个在本地 Windows 2008 服务器上运行的 Apache Tomcat 服务器。有时 Tomcat 会锁定并导致网站无法响应。

我们有监控(C# 控制台应用程序),可以自动进入并关闭 Apache Tomcat 服务,然后再将其重新打开。这实际上解决了这个问题。

但是,编程组要求我们在重新启动服务之前实际获取 Apache Tomcat 线程转储。

所以问题是 - 如何通过命令提示符或 C# 获取 apache tomcat 线程转储,以便将线程保存到文件中。

【问题讨论】:

    标签: c# apache tomcat tomcat6


    【解决方案1】:

    使用以下参数启动 Tomcat:

    -Dcom.sun.management.jmxremote.port=<some free port>
    -Dcom.sun.management.jmxremote.ssl=false
    -Dcom.sun.management.jmxremote.authenticate=false
    

    Tomcat 启动后,您可以轻松地使用 jconsole 或其他工具将其转储出来。

    或者,如果您只想使用命令提示符,请使用以下命令,但为此您需要 JDK:

    jps (it will give you the process id)
    

    现在您可以使用 jstack 为该特定进程进行转储。

    jstack process_id >> tomcat_dump.log
    

    【讨论】:

      猜你喜欢
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 2013-09-05
      • 2023-04-06
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      • 2018-10-19
      相关资源
      最近更新 更多