Apache Tomcat线程转储以编程方式

问题描述 投票:1回答:1

我搜索并搜索过,希望有人可以帮我解决这个问题。

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

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

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

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

c# apache tomcat tomcat6
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.