我的情况是,我有一个用java制作的应用程序,[现在]只连接一次到MySQL服务器并保持连接。它随机发送查询到MySQL,它可以保持几个小时而不发送一个查询到它,那么当它试图再次发送,JDBC说:我应该经常断开/重新连接到MySQL服务器吗?
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:从服务器成功接收到的最后一个数据包为60314秒前。成功发送到服务器的最后一个数据包为60314秒前,这比服务器配置的值'wait_timeout'长。在应用程序中使用之前,应考虑过期和/或测试连接有效性,增加服务器配置的客户端超时值,或者使用Connector/J连接属性'autoReconnect = true'来避免此问题。
然后,我心里有许多解决方案: - 连接/断开每个应用程序做了查询,[但它也可以在第二个让许多查询] 时间 - 设置autoReconnect的属性为“真”,并重新连接当它超时。 Personaly我喜欢第二。但是当我的问题出现时:是否建议做短连接?或者它并不重要?为什么MySQL服务器保持wait_timeout属性?
这是一个独立的应用程序(例如swing)还是服务器端应用程序(例如运行在tomcat上的应用程序)? – cherouvim 2011-01-30 17:19:41
这是一个服务器端。谢谢你的回答,我想我会用它:) – olivarra1 2011-01-30 18:37:39