解決 01-Jul-2016 10:49:05.875 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ROOT] registered the JDBC driver [com.mysql.jdbc.D


01-Jul-2016 10:49:05.875 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ROOT] 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應用,使用spring,連接池用的bonecp。當修改一點代碼,save后,spring會重新加載,然后問題就出現了。


在網上查看資料后,找到了該報告:https://issues.apache.org/jira/browse/DBCP-332 

原文引用:

BasicDataSource's method close() doesn't deregister JDBC driver. This causes permgen memory leaks in web server environments, during context reloads. For example, using Tomcat 6.0.26 with Spring, and BasicDataSource declared in Spring context, there is a message printed at web application reload:

SEVERE: A web application registered the JBDC 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.

 

翻譯:

BasicDataSource中的close方法沒有注銷(deregister)jdbc驅動。在web server環境中,當reload content時,就引起了堆內存泄露(permgen memory leaks)。例如,當在使用spring和tomcat  6.0.26時,BasicDataSource在Spring context被聲明了,這樣就會有一條信息在web application reload的時候: SEVERE: A web application registered the JBDC 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.


該地址中 https://issues.apache.org/jira/browse/DBCP-332 提供了一種解決方案。


我並沒有使用該方案,因為使用的是bonecp,所以我看了下bonecp的BoneCPDataSource的close方法,發現,其中有個 BoneCPConfig類,其中有這個屬性:deregisterDriverOnClose。 於是我在spring的xml配置中,加入了該配置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 解決 Tomcat reload WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [] registered the JDBC driver [com.mysql.jdbc.Driver] but fail 【原創】終止Tomcat服務后提示內存泄漏問題:org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc 之解決方案 registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. 嚴重: The web application [/] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregis 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. 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. 嚴重: The web application [] registered the JDBC driver 錯誤 tomcat報錯:org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory has finished in [99] ms解決辦法 Tomcat多應用啟動報錯:org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [].
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM