MySQL dbcp 下连接空闲8小时自动断开问题解决方案
来源:互联网 发布:第一学历 知乎 编辑:程序博客网 时间:2024/03/29 17:00
一项目用Mysql+S2SH,数据源用dbcp,部署好后,运行了一夜吧,第二天就报错,log显示大致就是
System Runtime Error:Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin failed:javax.servlet.ServletException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin failed: at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.buptnu.usermanage.filter.LoginFilter.doFilterInternal(LoginFilter.java:58) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595)
Mysql服务器默认的“wait_timeout”是28800秒,即为8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该 connection。connections如果空闲超过8小时,Mysql将其断开,而DBCP并不知道该connection已经失效,如果这时有 Client请求connection,DBCP将该失效的Connection提供给Client,将会造成上面的异常。
mysql配置中的wait_timeout值一定要大于等于连接池种的idle_timeout 值。否则mysql会在wait_timeout的时间后关闭连接,然而连接池还认为该连接可用,这样就会产生异常。
mysql中如何查看wait_timetout:进入mysql命令 输入命令:
mysql> show global variables like 'wait_timeout';
一般不建议修改mysql默认的wait_timeout值。
直接在dbcp的配置中简单配置即可:
6.timeBetweenEvictionRunsMillis = 20000
//这个值要小于mysql中的 'wait_timeout' 28800
7.minEvictableIdleTimeMillis = 28000
每timeBetweenEvictionRunsMillis毫秒秒检查一次连接池中空闲的连接,把空闲时间超过minEvictableIdleTimeMillis毫秒的连接断开,直到连接池中的连接数到minIdle为止
- MySQL dbcp 下连接空闲8小时自动断开问题解决方案
- MySQL+Hibernate下连接空闲8小时自动断开问题解决方案
- MySQL+Hibernate下连接空闲8小时自动断开问题解决方案
- MySQL+Hibernate下连接空闲8小时自动断开问题解决方案
- mysql连接空闲8小时自动断开问题DBCP解决方案
- mysql 默认八小时空闲自动断开连接
- mysql数据库连接空闲超过8小时自动断开,导致网站无法连接
- MySQL+Hibernate连接空闲超过8小时后自动断开解决方案
- mysql数据库连接空闲超过8小时自动断开,项目无法连接数据库
- MySQL+Hibernate连接空闲超过8小时后自动断开解决方案
- 解决mysql 8小时 空闲后连接断开
- mysql的8小时空闲,断开连接的问题
- DBCP连接mysql出现“8小时”问题解决
- C3P0连接池配置解决MySQL连接的空闲时间超过8小时后自动断开连接的问题
- 采用C3P0连接池解决spring+hibernate+mysql 访问空闲8小时后自动断开连接的问题
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
- c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
- Eclipse下配置使用glib库的方法【linux版本】
- 算法技巧总结
- 微信高仿导航页开门效果(送上源码)
- 网络设备驱动 和 DM9000 驱动程序分析
- find用法
- MySQL dbcp 下连接空闲8小时自动断开问题解决方案
- 在c# / ASP.net中获取当前日期
- DataSet数据集
- 15、backbone实战:webchat(四)server端开发
- javascript面向对象编程
- 重学设计模式 - Adapter模式
- extjs 主页面
- Android实现导航栏的左右滑动效果
- win7 笔记本 做WIFI热点的设置