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 OutOfMemoryError
issues 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?