zoukankan      html  css  js  c++  java
  • 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 设置的值
  • 相关阅读:
    2018.9.22 Bubble Cup 11-Finals(Online Mirror,Div.2)
    2018.9.21 Codeforces Round #511(Div.2)
    2018.9.20 Educational Codeforces Round 51
    解题:USACO12OPEN Bookshelf
    解题:CF983B pyramid
    1214. 许可证密钥格式
    1212. 最大连续1的个数
    1270. 勒索信
    1250. 第三大的数
    1218. 补数
  • 原文地址:https://www.cnblogs.com/sherrykid/p/4623199.html
Copyright © 2011-2022 走看看