java - To prevent a memory leak, the JDBC Driver has been forcibly unregistered -


i getting message when run web application. runs fine message during shutdown.

severe: web application registered jbdc driver [oracle.jdbc.driver.oracledriver] failed unregister when web application stopped. prevent memory leak, jdbc driver has been forcibly unregistered.

any appreciated.

since version 6.0.24, tomcat ships memory leak detection feature, in turn can lead kind of warning messages when there's jdbc 4.0 compatible driver in webapp's /web-inf/lib auto-registers during webapp's startup using serviceloader api, did not auto-deregister during webapp's shutdown. message purely informal, tomcat has taken memory leak prevention action accordingly.

what can do?

  1. ignore warnings. tomcat doing job right. actual bug in else's code (the jdbc driver in question), not in yours. happy tomcat did job , wait until jdbc driver vendor fixed can upgrade driver. on other hand, aren't supposed drop jdbc driver in webapp's /web-inf/lib, in server's /lib. if still keep in webapp's /web-inf/lib, should manually register , deregister using servletcontextlistener.

  2. downgrade tomcat 6.0.23 or older not bothered warnings. silently keep leaking memory. not sure if that's know after all. kind of memory leaks 1 of major causes behind outofmemoryerror issues during tomcat hotdeployments.

  3. move jdbc driver tomcat's /lib folder , have connection pooled datasource manage driver. note tomcat's builtin dbcp not deregister drivers on close. see bug dbcp-322 closed wontfix. rather replace dbcp connection pool doing job better dbcp. example hikaricp, bonecp, or perhaps tomcat jdbc pool.


Comments

Popular posts from this blog

windows - Why does Vista not allow creation of shortcuts to "Programs" on a NonAdmin account? Not supposed to install apps from NonAdmin account? -

c++ - How do I get a multi line tooltip in MFC -

unit testing - How to mock PreferenceManager in Android? -