zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    代码结构
    linux 启动盘制作multisystem
    cmake 各种语法的作用
    leetcode Longest Consecutive Sequence
    leetcode find kth
    leetcode twoSum
    S3pool pytorch
    数学:优化:拉格朗日乘子法
    Fisher判别分析(线性判别分析——LDA)
    数学:优化:牛顿法
  • 原文地址:https://www.cnblogs.com/jxrichar/p/4741929.html
Copyright © 2011-2022 走看看