异常:
严重: The web application [/C-PDMS2] appears to have started a thread named [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0] but has failed to stop it. This is very likely to create a memory leak.
2013-1-30 17:08:57 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [/C-PDMS2] appears to have started a thread named [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1] but has failed to stop it. This is very likely to create a memory leak.
2013-1-30 17:08:57 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [/C-PDMS2] appears to have started a thread named [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2] but has failed to stop it. This is very likely to create a memory leak.
2013-1-30 17:08:57 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
原因:
在Tomcat关闭的时候还有线程没有关闭,这会引起内存泄露,所以Tomcat会自己强行关闭。
解决方案:
看上面的异常可得知是C3P0引起的,因为在C3P0Util中用到了ThreadLocal这个类,所以在服务器关闭的时候调用comboPooledDataSource .close()方法,到是貌似可以解决。
但是又报了下面的错:
严重: The web application [/C-PDMS2] appears to have started a thread named [Resource Destroyer in BasicResourcePool.close()] but has failed to stop it. This is very likely to create a memory leak.
2013-1-30 17:20:04 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
调用connLocal .remove()方法,貌似可以解决问题。