tomcat

时间:2016-06-30 14:25:16

标签: java multithreading tomcat memory-leaks

因此,情况是我在一个tomcat中有多个应用程序,偶尔我必须更新它们而不重新启动服务。

为了防止在tomcat 7上重新加载或重新部署应用程序时出现一些泄漏(可能是由我无法访问的类[即,TimerThread永远不会结束]),我决定在破坏时列出线程上下文并强行停止/中断它们。 我知道它听起来并不是一个完美的方法,但它似乎是一个有效的方法,因为我无法找到一个可以很好地关闭线程的点。因此,我坚持让他们产生这些泄漏。

我用" Thread.getAllStackTraces()"列出了它们,但它显然给了我JVM中的所有线程,我只想要特定应用程序的线程,所以我就这样做了能够迭代它们并找到我必须打断的那个。 我使用" getName()"找到他们。

好吧,如果有人能就此澄清我......

Java 7 Tomcat 7

1 个答案:

答案 0 :(得分:0)

首先,我要感谢那些对我的疑问发表评论的人。

无论如何......我一直在寻找答案而无法列出线程,因为我认为这是解决问题的最佳方法。然后,我决定查看其他地方的库,发现其中一个,apache.commons.dbcp版本1.4注定要使用Java 6,而且当我使用Java 7时,它大量创建了一个永无止境的TimerThread,因此造成泄漏。更新为apache.commons.dbcp2 for Java 7+使得应用程序甚至从未启动过我提到过的TimerThread。 现在看起来不错。