Tomcat JDBC 資料來源警告:記憶體洩漏
使用已設定的Tomcat JDBC 資料來源關閉Tomcat 7.x 時,您可能會遇到catalina.out 日誌檔案中出現以下警告:
Mar 26, 2013 1:17:52 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJDBC SEVERE: The web application [/my_webapp] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
此警告表明當Web 應用程式停止時,由於未正確註銷JDBC 驅動程序,可能會發生記憶體洩漏。為了解決此問題,儘管為資料來源設定了銷毀方法,警告仍然存在。
記憶體洩漏的另一個潛在原因透過單獨的警告來突出顯示:
Mar 26, 2013 1:17:52 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: The web application [/my_webapp] appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it. This is very likely to create a memory leak.
要解決兩個警告:
將MySQL 連接器/驅動程式JAR 檔案從WAR 檔案移到Tomcat lib 資料夾。部署包含驅動程式的 WAR 檔案可能會因垃圾收集不當而導致記憶體洩漏。
確定為什麼「MySQL 語句取消計時器」執行緒沒有停止。檢查應用程式程式碼或任何第三方程式庫,用於識別該執行緒在何處啟動,並確保在應用程式關閉時正確停止它。
透過實施這些措施,可以有效防止記憶體洩漏並避免 catalina.out 日誌檔案中的警告。
以上是為什麼Tomcat 7.x使用JDBC資料來源時出現記憶體洩漏警告?的詳細內容。更多資訊請關注PHP中文網其他相關文章!