Since version 6.0.24, Tomcat ships with a memory leak detection feature, which in turn can lead to this kind of warning messages. This particular message is caused by Tomcat's builtin DBCP not deregistering drivers properly on close. See also bug DBCP-322 . This message is purely informal, Tomcat has already taken the memory leak prevention action accordingly.
What can you do?
-
Ignore those warnings. Tomcat is doing its job right. The actual bug is in someone else's code, not in yours. Be happy that Tomcat did its job properly and wait until the DBCP guys get it fixed so that you can upgrade. The DBCP project is however currently stalling. I wouldn't expect quick updates.
-
Downgrade to Tomcat 6.0.23 or older so that you will not be bothered with those warnings. But it will silently keep leaking memory. Not sure if that's good to know after all. Those memory leaks are one of the major causes behind
OutOfMemoryErrorissues during Tomcat hotdeployments. -
Decorate
BasicDataSource#close()yourself so that it is deregistering the driver properly. Also see the code example in the above link to DBCP-322 bug. -
Replace DBCP by another connection pool which is doing its job better then DBCP. For example BoneCP or Tomcat JDBC Pool maybe?
从Tomcat 6.0.24版本开始内置了内存泄漏检测功能,这可能导致出现警告消息。这些警告由Tomcat内置的DBCP未能正确注销驱动程序引起。尽管这些警告是信息性的,但Tomcat已采取措施防止内存泄漏。解决此问题的方法包括忽略警告、降级到早期版本的Tomcat、自行装饰BasicDataSource的关闭方法,或者更换使用更稳定的连接池。
2932

被折叠的 条评论
为什么被折叠?



