Java连接问题

时间:2011-08-05 05:56:39

标签: java mysql

我收到了以下错误。

  

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:最后一个   从服务器成功收到的数据包是37,787,544   几毫秒之前。成功发送到服务器的最后一个数据包是   37,787,544毫秒之前。比配置的服务器长   'wait_timeout'的值。你应该考虑到期和/或   在您的应用程序中使用前测试连接有效性,增加   服务器配置的客户端超时值,或使用   连接器/ J连接属性'autoReconnect = true'以避免这种情况   问题

一旦我重新启动应用程序,它可以运行一段时间,然后出现同样的错误。

2 个答案:

答案 0 :(得分:1)

你可以做几件事,

  1. 将wait_timeout配置为一天或两天的非常长的值。请参阅here
  2. 您的MySQL连接网址jdbc:mysql://yourhost:port/dbname?autoReconnect=true
  3. 中的Appenf autoReconnect = true

答案 1 :(得分:0)

您的关系即将到期,因为您正在创建它们并将它们“永久地”保留。

最好的方法是使用连接池,例如Apache's DBCP - DataBase Connection Pool

池提供给你的一件事是它在给你之前检查连接的有效性 - 如果连接是“不好”(它运行一个简单的查询来断言),它关闭它并创建一个新的然后给你新的。这整齐地迎合到期。