我们有一个生产Web应用程序,似乎有一个线程卡住做一堆工作,并运行CPU和平均负载。我几乎知道问题所在 - 我们的DWR服务正在将非常大的东西转换为Javascript对象响应。问题是我不知道哪个服务调用产生了这么大量的数据,因为线程在我的任何代码之外(它在DWR servlet中将我的返回值转换为出站JavaScript对象...否则我可以请参阅线程转储中的我的服务方法)。如何从正在运行的生产Tomcat Web应用程序获取线程调试信息?
你并不需要了解DWR帮我,但因为我的问题是这样的:
这是任何方式对我来说,寻找到一个部署Web应用程序(Tomcat的6),看看是什么样的状态线程在,如变量值等?如果我可以基本上采用线程的“调试快照”,就好像我在本地开发期间在调试模式下有一个断点一样,但是让我看到或打印出某个值的任何解决方案都是有用的。
谢谢!
UPDATE
如果可以不重新启动服务器,这将是最好的,因为这个问题只出现在一段时间每一次,并重新启动使问题消失。看起来JProfiler需要在JVM中添加-agentpath
选项,所以我需要重新启动它。
完美,谢谢! –