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?
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 usingservletcontextlistener
.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.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
Post a Comment