我有一个运行Tomcat 8.5的Azure应用程序服务,似乎无法弄清楚如何执行线程转储。 jstack无法在控制台和DebugConsole中识别。如何在Azure应用服务上执行线程转储?
回答
在Azure App Service上,所有流行版本的Java都安装在路径D:\Program Files (x86)\Java
。以1.8.0u73版本为例,请参见下图。
你可以命令set PATH=D:\Program Files (x86)\Java\jdk1.8.0_73\bin;%PATH%
到Java工具临时添加到环境中通过捻控制台工具。然后,jstack
工具在当前Kudu会话中可用。
使用你的答案,我在进程资源管理器选项卡中从java进程的pid尝试了jstack,但是我得到了一个“Exception in thread”主“java.io.IOException:Premature EOF”。这可能是我的特定应用程序的一个问题,所以你能否验证你实际上可以这样做线程转储? –
@DaveyChu你的异常似乎是由'jstack'引起的一个巨大的内容。请尝试'jstack -F PID> D:\ home \ site \ out.txt'将内容输出到文本文件。 –
由以前的回答启发,我创建了下面的蝙蝠脚本(可能是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文件,然后在需要时运行它。
- 1. 如何在Azure应用程序服务上部署Windows服务
- 2. 使用Sql Azure在Azure应用程序服务上进行TransactionScope
- 3. 如何与执行官服务线程
- 4. 如何在Azure应用服务中执行index.php页面?
- 5. 如何使用Azure应用服务执行备份
- 6. Azure应用服务.Net后端 - 执行存储过程查询时出错
- 7. 如何在内存不足错误时执行线程转储
- 8. 如何在Azure应用服务Windows Web应用上安装psycopg2?
- 9. 执行程序服务 - 线程超时
- 10. 等待执行程序服务线程
- 11. 将azure云服务转换为azure网络应用服务
- 12. 执行一个应用程序在服务器上使用JavaScript
- 13. 在UI线程上执行长任务
- 14. 如何在android中安装应用程序后执行服务
- 15. 如何在java应用程序中执行selfhosting web服务
- 16. 如何在C#中执行服务器应用程序方法
- 17. 如何在Windows服务器上生成没有wsadmin的websphere线程转储
- 18. 如何在服务器启动后执行后台线程?
- 19. 如何分析线程转储用于Java服务器进程在Unix中
- 20. 可执行控制台java应用程序在Mac上服务
- 21. 在Windows上从ruby应用程序执行rails服务器
- 22. 在java中的执行器服务 - >如何转换单线程代码来使用执行器
- 23. 在Azure服务总线上使用NServiceBus进行重复检测
- 24. startActivity应该在主线程上执行?
- 25. 如何在Windows上强制执行Go程序的转储?
- 26. 从服务的执行线程
- 27. 执行者服务多线程
- 28. 的Java执行器服务线程池
- 29. 如何判断在SQL Azure上使用参数执行哪些存储过程
- 30. 如何获取WebLogic服务器的线程转储?
也许Kudu控制台? – Kamo