我正在使用Spring + Hibernate + MySQL运行正常的应用程序,但有时我收到这些错误
错误:
could not execute query; nested exception is org.hibernate.exception.JDBCConnectionException: could not execute query
我在tomcat - 7版本上运行我的应用程序
所以如果我不使用该应用程序超过一段时间我得到这个错误我不知道时间,如果我重新启动我的应用程序然后我能够正常工作我没有得到任何错误的
我的database.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
</beans>
上述配置是否有任何问题我需要更改以解决此问题
答案 0 :(得分:2)
根据this回答,您必须将mysql连接器/驱动程序放在Tomcat/lib
而不是战争中。每次部署战争时都会创建连接器/驱动程序,有时垃圾收集器无法将其删除,这将以内存泄漏结束。
答案 1 :(得分:0)
您可以在此主题上看到类似的问题和可能的解决方案。
tomcat7 - jdbc datasource - This is very likely to create a memory leak