您的位置:首页 > 数据库

Could not open Hibernate Session for transaction, 数据库连接超时解决方法

2014-02-25 09:49 603 查看
ssh项目,服务器开了一夜后,出现了这样的异常,在博客上找到了这样的解决方案,

[java] view
plaincopy

异常:  

javax.servlet.ServletException: org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin failed:   

   

root cause   

org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin failed:   

   

   

解决方案:  

1.  

给jdbc url 增加 autoReconnect=true 一定能解决你的问题,可以定期观察一下 show processlist  

改进方法如下:  

<property name="url" value="jdbc:mysql://localhost/数据库实例名  

称?&useUnicode=true&characterEncoding=utf-8&autoReconnect=true"/>  

   

2.  

寻找支持重连的连接池。  

           注意:c3p0连接池支持重连;重连参数是:  

               idleConnectionTestPeriod   设置空闲连接测试周期  

               preferredTestQuery : 设置一查询语句,用于重连测试  

              testConnectionOnCheckin设置为true  

              testConnectionOnCheckout设置为true  

   

在sessionFactory里配置:  

<property name="hibernateProperties">  

   <props>  

        <prop key="hibernate.autoReconnect">true</prop>   

  </props>  

</property>  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐