Mar*_*ark 5 java mysql tomcat hibernate exception
我的Java应用程序使用Hibernate并由Tomcat 6.0托管,在尝试访问数据库时长时间不活动后会收到以下异常:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.io.EOFException
STACKTRACE:
java.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1963)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2375)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2874)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1268)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1403)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1812)
at org.hibernate.loader.Loader.doQuery(Loader.java:697)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
at org.hibernate.loader.Loader.doList(Loader.java:2232)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
at org.hibernate.loader.Loader.list(Loader.java:2124)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
Run Code Online (Sandbox Code Playgroud)
有小费吗?
谢谢
默认情况下,MySQL 将在 8 小时后关闭空闲连接(下图wait_timeout)。这是一个“著名问题”,您会在互联网上找到许多关于它的参考资料,例如这个。所以要么:
validationQuery配置 tomcat 以在数据源配置中使用 a 来测试借用连接:
<parameter>
<name>validationQuery</name>
<value>select 1</value>
</parameter>
Run Code Online (Sandbox Code Playgroud)wait_timeout通过my.cnf/my.ini或通过连接命令行 SQL 客户端并输入SET GLOBAL wait_timeout=86400或其他合适的秒数来增加 MySQL 的值。
请注意,我不知道第二种选择的所有后果。如果您决定采用第二种方法,我建议您发布另一个问题以获取 MySQL 专家的反馈。
| 归档时间: |
|
| 查看次数: |
2736 次 |
| 最近记录: |