gpt4 book ai didi

mysql - tomcat7 - jdbc 数据源 - 这很可能会造成内存泄漏

转载 作者:IT老高 更新时间:2023-10-28 13:48:04 30 4
gpt4 key购买 nike

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.

第一个声称 DataSource 已被强制注销,这很好。但是很奇怪,因为我已经像这样配置了销毁方法:

<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>

不知道为什么我得到第二个。关于“MySQL 语句取消计时器”的一个。

感谢任何帮助

编辑 1:我尝试了@Zelldon 建议的修复程序,它消除了第一个错误。但是 MySQL Statement Cancellation Timer 相关问题仍然存在

最佳答案

尝试将sql Connector/Driver放在tomcat/lib中,而不是war中。因为每次部署 war 时都会创建连接器/驱动程序,有时垃圾收集器无法删除它们,这将导致内存泄漏。所以尝试移动tomcat/lib文件夹上的连接器。

请阅读以下答案:

Why must the JDBC driver be put in TOMCAT_HOME/lib folder?

How to configure Tomcat to connect with MySQL

关于mysql - tomcat7 - jdbc 数据源 - 这很可能会造成内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15632153/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com