如何在Azure App Service上进行线程转储?

时间:2017-04-10 12:26:36

标签: java azure tomcat tomcat8

我有一个运行Tomcat 8.5的Azure应用服务,似乎无法弄清楚如何进行线程转储。控制台和DebugConsole中都无法识别jstack。

2 个答案:

答案 0 :(得分:2)

在Azure App Service上,所有流行的Java版本都已安装在路径D:\Program Files (x86)\Java上。以1.8.0u73版为例,请参见下图。

enter image description here

您可以命令set PATH=D:\Program Files (x86)\Java\jdk1.8.0_73\bin;%PATH%通过Kudu控制台工具临时将Java工具添加到环境中。然后,jstack工具在当前的Kudu会话中可用。

答案 1 :(得分:0)

受到上一个答案的启发,我创建了以下蝙蝠脚本(可能是powershell,我想)可以完成这项任务:

powershell -Command "get-process java |select -expand id" > pid.txt
set /p id= < pid.txt
"%JAVA_HOME%\bin\jstack" -F %id% > out.txt

它使用您在应用中使用的Java版本(JAVA_HOME),并且不需要您的任何输入。这很简单并且可以解决问题。例如,只需在wwwroot中创建一个bat文件,然后随时运行它。

相关问题