Hi folks, there's now a follow-up on the issue [1]. Recap: JreMemoryLeakPreventionListener reported that my webapp has spawned OracleTimeoutPollingThread because I have set a QueryTimeout in the JDBC Pool. Mark Thomas noted that this is likely a bug in the driver. I have taken action and created a service request with Oracle.
My personal analysis with VisualVM: The thread is spawned when the first query is run. The thread keeps running when the webapp is shut down or undeployed. Classes remain in memory. The JDBC Pool does a simple Class.forName to load the driver, it neither uses the DriverManager loading nor does it actively unload the driver. Oracle answer: They were able to reproduce the issue. The technical analysis says: > Hi Michael, > > I confirmned internally that this message from Tomcat can be ignored as there > is no risk of any real leak from" OracleTimeoutPollingThread" thread. > This thread is related to the JDBC driver which may be used by many apps > simultaneously. Unloading the app does not unload the driver and should not > and does not stop the thread. > > It seems to be the design behaviour. So my questions would be: 1. Is that still not a false positive? 2. Why does the JDBC Pool not unload the driver? That my cause the thread to stop after the last app has been stopped/undeployed. Thanks, Michael [1] http://www.mail-archive.com/users@tomcat.apache.org/msg106186.html --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org