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

tomcat关闭时,我在catalina.out日志文件中收到以下消息。我正在使用Tomcat 7.x和Tomcat JDBC数据源。

Mar 26, 2019 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已被强制注销,这样就可以了。但是,这很奇怪,因为我已经像这样配置了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>

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

任何帮助表示赞赏

编辑1:我尝试了@Zelldon建议的修复程序,它摆脱了第一个错误。但是·相关问题仍然存在

回答:

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

以上是 tomcat7-jdbc数据源-这很可能造成内存泄漏 的全部内容, 来源链接: utcz.com/qa/419408.html

回到顶部