Java 在运行时对Tomcat7进行故障排除

Java 在运行时对Tomcat7进行故障排除,java,tomcat,runtime,Java,Tomcat,Runtime,我有问题,不知道如何找到一些可能出错的线索。我部署了我的web应用程序(spring-hibernate-MySQL),在它启动后的几秒钟内,它工作正常。我可以浏览网页。所有的请求都得到堆栈,并且没有加载任何内容。所有的页面都挂着。PageNotFound 404错误在我输入错误页面时出现 问题是tomcat7.exe处于活动进程中,内存随着时间的推移略有增加。所以我怀疑内存泄漏。如何从tomcat获取内存堆?什么堆分析器最适合发现漏洞 PS:结果是maxPoolSize在ComboPooled

我有问题,不知道如何找到一些可能出错的线索。我部署了我的web应用程序(spring-hibernate-MySQL),在它启动后的几秒钟内,它工作正常。我可以浏览网页。所有的请求都得到堆栈,并且没有加载任何内容。所有的页面都挂着。PageNotFound 404错误在我输入错误页面时出现

问题是tomcat7.exe处于活动进程中,内存随着时间的推移略有增加。所以我怀疑内存泄漏。如何从tomcat获取内存堆?什么堆分析器最适合发现漏洞


PS:结果是maxPoolSize在ComboPooledDataSource中只有15个。将其增加到200,现在一切正常。

请查看以下两个链接:


这里需要线程转储。它将让您了解Tomcat处理器(TP)线程正在做什么,以及堆统计信息(假设最近有一个Sun JVM)。除非您看到CPU利用率高,同时内存增长到最大配置堆大小,否则内存泄漏可能不是您的问题

更可能的情况是阻塞线程并阻止请求完成,可能是连接池等公共资源。如果您不熟悉读取线程转储输出,使用线程转储分析应用程序将有所帮助。您还可以考虑启用Tomcat管理器应用程序,它提供一些有用的状态信息(很像Apache服务器状态),并使用J控制台通过JMX监视JVM。p>