tomcat关机内存泄漏,java线程无法停止

时间:2013-10-22 07:45:26

标签: java tomcat memory-leaks shutdown

所有:   这是我的问题:当我使用shundown.bat关闭tomcat时,但它失败了,这里有一些日志:

Severe: The web application [/shop] appears to have started a thread named [ConnectionStateManager-0] but has failed to stop it. This is very likely to create a memory leak.

2013-10-22 11:38:10 org.apache.catalina.loader.WebappClassLoader clearReferences

Severe: The web application [/shop] appears to have started a thread named [CuratorFramework-0] but has failed to stop it. This is very likely to create a memory leak.

从日志中我们可以知道它可能是某些Thread无法停止,并可能导致记忆泄漏;

任何人都可以看到这个,或者有人可以给予一些灵魂,谢谢

2 个答案:

答案 0 :(得分:1)

好吧,如果你关闭了tomcat,那么一些线程不会停止并不重要。一旦java进程结束,每个线程都将死掉,内存将是空闲的。

请注意java进程没有挂起,也许你可以在shutdown.bat中添加kill规则,用-force调用它(请参考tomcat手册,我不知道窗口),或者只是从你的任务经理那里检查它。

希望它能够解决问题

P.S。 因为我记得我的环境中总是有那些日志行,但我从来没有遇到任何麻烦。

答案 1 :(得分:1)

如果您将该问题直接发送给该Shop Servelet的创建者,那么他/她肯定知道这一点可能是最好的。

Servlet应该是无状态的,但它不一定是。但是,如果你打破了那个无状态系统(在这种情况下保持一个特殊的线程处于活动状态),TomCat就不能再确保清理工作正常,因此警告。因此,这个可能是一个问题,但如果编码正确则不一定。