IBM的广受支持的JDBC驱动程序与Tomcat广受支持的连接池结合使用会导致内存泄漏。 请参考Tomcat应用程序.war文件重新部署时的类加载器内存泄漏。
java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [DB2JccConfiguration.properties]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1327)
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:1023)
at com.ibm.db2.jcc.am.ud.run(Unknown Source)
at java.security.AccessController.doPrivileged(AccessController.java:285)
at com.ibm.db2.jcc.am.GlobalProperties.a(Unknown Source)
at com.ibm.db2.jcc.am.GlobalProperties.d(Unknown Source)
at com.ibm.db2.jcc.am.mq.run(Unknown Source)
at java.util.TimerThread.mainLoop(Timer.java:567)
at java.util.TimerThread.run(Timer.java:517)
我不理解所建议的解决方案,因为它与将驱动程序JAR包包含在Tomcat lib目录中的最常推荐做法相冲突。
我们需要进行共享部署和重新部署,而无需重新启动Tomcat。如果您有使用此软件组合并遇到此问题的经验,请在此处分享您的解决方案。