ara*_*ant 23 mysql spring memory-leaks datasource tomcat7
当tomcat关闭时,我在catalina.out日志文件中收到以下消息.我正在使用Tomcat 7.x和Tomcat JDBC数据源.
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.
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.
Run Code Online (Sandbox Code Playgroud)
第一个声称DataSource已被强制取消注册,因此没问题.但是很奇怪因为我已经像这样配置了destroy-method:
<bean name="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
不知道为什么我得到第二个.关于"MySQL语句取消计时器"的一个.
任何帮助表示赞赏
编辑1:我尝试了@Zelldon建议的修复,它摆脱了第一个错误.然而,MySQL Statement Cancellation Timer相关问题仍然存在
Zel*_*don 34
尝试将sql Connector/Driver放在tomcat/lib中而不是在war中.因为每次部署战争时都会创建连接器/驱动程序,有时垃圾收集器无法删除它们,这将以内存泄漏结束.因此,尝试移动tomcat/lib文件夹上的连接器.
请阅读以下答案:
为什么必须将JDBC驱动程序放在TOMCAT_HOME/lib文件夹中?
| 归档时间: |
|
| 查看次数: |
45840 次 |
| 最近记录: |