java - MySQL 数据库连接几分钟后断开

标签 java mysql spring hibernate jsf

我正在使用 Spring+Hibernate+JSF,但是如果我在页面上工作几分钟,我在尝试一些数据库查询时会遇到异常

 The last packet successfully received from the server was 2,615,049 milliseconds ago.  The last packet sent successfully to the server was 27 milliseconds ago.

Caused by: org.hibernate.TransactionException: JDBC begin transaction failed: 
    at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:76)
    at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160)
    at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1309)
    at org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:474)
    ... 46 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

此问题是由于我的项目中的任何配置或其数据库供应商问题造成的吗 在 web.xml 中我做了这个条目

<session-config>
   <session-timeout>
          30
   </session-timeout>
 </session-config>

连接池

<bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="driverClass" value="com.mysql.jdbc.Driver" />
        <property name="jdbcUrl" value="jdbc:mysql://IP:3306/ccc" />
                <property name="user" value=" hariom" />
                <property name="password" value="password" />
        <property name="maxPoolSize" value="2" />
        <property name="maxStatements" value="0" />
        <property name="minPoolSize" value="1" />
</bean>

最佳答案

您应该添加此属性;

<property name="validationQuery" value="SELECT 1" />

这将验证连接,如果 mysql 关闭连接,您的应用程序将不会尝试发送数据包。

关于java - MySQL 数据库连接几分钟后断开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24446280/

相关文章:

java - Spring mongotemplate 查询结果与子文档

java - 如何在我的 Eclipse Java 项目中导入 org.apache.commons.lang.time.StopWatch?

java - 泛型类型参数有界,不传递真实类型

mysql - PDO插入最大id+1而不是auto_increment

php - MySQL 请求未正确插入数据库

javascript - JS & Node : Read table from DB with AJAX and display in table

java - 如何确定我的任务是否被线程池接受而不被拒绝?

java - CountDiv (Codility) 挑战算法的性能问题

java - 在 Apache Camel 中从 Json 检索对象

java - 使用 Log4j2 记录 Spring