Hibernate连接数据库超时设置autoReconnect=true

com.mysql.jdbc.CommunicationsException: The last packet successfully received from the server was58129 seconds ago.The last packet sent successfully to the server was 58129 seconds ago, which is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.

 

  jdbc.url=jdbc:mysql://ipaddress:3306/database?autoReconnect=true&autoReconnectForPools=true
然后数据库连接池中增加设置如下:
       
            SELECT 1
       

       
            true
       

测试两天看是可以解决问题。

如果还是出问题,可虑使用另一个方案:
1. 移除 autoReconnect=true&autoReconnectForPools=true这两个在 URL 中配置的属性
2. 更新连接池框架为  C3P0, 参考其在 Hibernate 中的配置如下:

org.hibernate.connection.C3P0ConnectionProvider
5
30
1800
50
1
120 
true原因是连接数据库超时了,目前先把 URL 改成
jdbc.url=jdbc:mysql://ipaddress:3306/database?autoReconnect=true&autoReconnectForPools=true
然后数据库连接池中增加设置如下:
       
            SELECT 1
       

       
            true
       

测试两天看是可以解决问题。

如果还是出问题,可虑使用另一个方案:
1. 移除 autoReconnect=true&autoReconnectForPools=true这两个在 URL 中配置的属性
2. 更新连接池框架为  C3P0, 参考其在 Hibernate 中的配置如下:

org.hibernate.connection.C3P0ConnectionProvider
5
30
1800
50
1
120 
true

原因是连接数据库超时了,目前先把 URL 改成
jdbc.url=jdbc:mysql://ipaddress:3306/database?autoReconnect=true&autoReconnectForPools=true
然后数据库连接池中增加设置如下:
       
            SELECT 1
       

       
            true
       

测试两天看是可以解决问题。

如果还是出问题,可虑使用另一个方案:
1. 移除 autoReconnect=true&autoReconnectForPools=true这两个在 URL 中配置的属性
2. 更新连接池框架为  C3P0, 参考其在 Hibernate 中的配置如下:

org.hibernate.connection.C3P0ConnectionProvider
5
30
="c3p0.time_out">1800
50
="c3p0.acquire_increment">1
="c3p0.idle_test_period">120 
="c3p0.validate">true

 

true bm%_7
        true :]hKB$
        true
:\@q^g PN

你可能感兴趣的:(hibernate,数据库,c3p0,数据库连接池,jdbc,server)