• MySQL 8小时问题


    在MySQL数据库中,默认情况下,如果一个连接的空闲事件超过 8 小时,将会在数据库端关闭这个连接,而数据源并不知道这个连接已经被数据库关闭,当将这个无用的连接交给Dao时,就会产生异常

    在Spring中,如果采用DBCP配置数据源

    如果采用的是DBCP的默认配置,不会产生 8 小时问题, 因为每次数据源在将连接给Dao前都会做检查,但这样影响效率

    一种更好的方法是:

        <bean id="mysql_dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
              p:driverClassName="${driverClassName}"
              p:url="${url}"
              p:username="${username_mysql}"
              p:password="${password}"
                p:testOnBorrow="false"
                p:testWhileIdle="true"
                p:timeBetweenEvictionRunsMillis="27000000"
                p:validationQuery="select 1"/>
    p:timeBetweenEvictionRunsMillis  以毫秒为单位,时间小于 8 小时,但是这个8小时也是可以在MySQL中通过 interactive-timeout参数进行配置的,所以在配置 p:timeBetweenEvictionRunsMillis,之前先需要知道 interactive-timeout 设置的值
  • 相关阅读:
    西藏之行的一点总结
    《吃的法则》总结
    《心法》总结
    分布式系统中的CAP、ACID、BASE概念
    《你当像鸟飞往你的山》总结
    《怪诞行为学》总结
    编程的一些抽象核心
    《活法》总结
    Mac使用Charles给iPhone抓包流程
    《认知天性》总结
  • 原文地址:https://www.cnblogs.com/sherrykid/p/4623199.html
Copyright © 2020-2023  润新知