• Hibernate连接池断开自动重连


    异常:

    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>

  • 相关阅读:
    09-排序1 排序
    06-图3 六度空间
    06-图2 Saving James Bond
    06-图1 List Components
    04-树5 Complete Binary Search Tree
    03-树2 Tree Traversals Again
    PAT 05-树8 Huffman Codes
    Egret引擎的visible两次开关闭问题
    Egret的项目笔记(一)
    Egret屏幕适配【转】
  • 原文地址:https://www.cnblogs.com/jxrichar/p/4741929.html
Copyright © 2020-2023  润新知