当前位置:  开发笔记 > 后端 > 正文

为什么Hibernate/JDBC/MySQL会在一天左右后断开连接?

如何解决《为什么Hibernate/JDBC/MySQL会在一天左右后断开连接?》经验,为你挑选了2个好方法。

我有几个服务器进程,偶尔会响应来自客户端的消息并执行只读事务.

大约几天后,服务器正在运行,它们停止正常工作,当我检查时发现有大量关于连接被关闭的消息.

当我检查出来时,事实证明,默认情况下,hibernate在某种开发模式下工作,在几种小时后连接被丢弃,我开始使用c3po进行连接池.

但是,即使使用c3po,我在服务器启动后大约24小时左右就会遇到这个问题.

有没有人遇到过这个问题并知道如何解决它?我对配置hibernate的复杂性不够熟悉.



1> Bill Karwin..:

MySQL JDBC驱动程序在8小时不活动后超时并断开连接.

您可以autoReconnect=true在JDBC URL中进行设置,如果在断开连接后尝试查询,则会导致驱动程序重新连接.但这有副作用; 例如,无法通过新连接维护会话状态和事务.

如果使用autoReconnect,则重新建立JDBC连接,但它不会自动重新执行获得异常的查询.因此,您需要捕获SQLException应用程序并重试查询.

有关详细信息,请阅读http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html.



2> 小智..:

默认情况下,MySql在8小时内基本超时.

我得到了同样的例外并在3天忙碌之后解决了这个问题.检查你是否正在使用我的hibernate3.在此版本中,需要明确提及连接类名称.还要检查jar是否在classpath中.检查以下链接中的步骤和评论

http://hibernatedb.blogspot.com/2009/05/automatic-reconnect-from-hibernate-to.html

去掉 autoReconnect=true

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有