Spring配置mysql连接池,连接超时解决方法
来源:互联网 发布:数据分析师认证考试 编辑:程序博客网 时间:2024/06/03 12:45
mysql默认连接超时时间为8小时,Spring配置mysql连接池时,长时间不用连接句柄,会造成连接超时,主要是数据库断掉了连接,而程序本身不知道,继续用着已经关闭的连接就会报错,有三种作法可以解决这个问题,一种是改变mysql的my.ini文件,在my.ini里添加wait_timeout=N秒;另外一种作法就是每次用到连接时都检查一下是否超时,不过,这个作法相法不高明;还有一种作法就是利用org.apache.commons.dbcp.BasicDataSource里本身的配置:testWhileIdle,GenericObjectPool中针对pool管理,起了一个Evict的TimerTask定时线程进行控制(可通过设置参数timeBetweenEvictionRunsMillis>0),定时对线程池中的链接进行validateObject校验,对无效的链接进行关闭后,会调用ensureMinIdle,适当建立链接保证最小的minIdle连接数;validateQuery,代表检查的sql;numTestsPerEvictionRun,代表每次检查链接的数量,建议设置和maxActive一样大,这样每次可以有效检查所有的链接,一般的配置如下:
<property name="testWhileIdle"><value>true</value></property>
<property name="testOnBorrow"><value>false</value></property>
<property name="testOnReturn"><value>false</value></property>
<property name="validationQuery"><value>select 1</value></property>
<property name="timeBetweenEvictionRunsMillis"><value>N毫秒(不能比数据库默认的超时时间大)</value></property>
<property name="numTestsPerEvictionRun"><value>建议设置和maxActive一样大</value></property> ,
其中testOnBorrow就是第二种作法就是在进行borrowObject进行处理时,对拿到的connection进行validateObject校验;一般不启用,浪费性能;
testOnReturn在进行returnObject对返回的connection进行validateObject校验,和testOnBorrow配对使用。
- Spring配置mysql连接池,连接超时解决方法
- mysql 连接超时解决方法
- spring cloud服务连接超时解决方法
- hibernate与mysql连接超时的解决方法
- mysql默认连接超时问题的解决方法
- Mysql连接超时的问题与解决方法
- spring配置连接mysql
- spring boot mysql 8小时连接超时
- mysql 连接池连接超时的问题
- ssh连接超时解决方法
- github连接超时解决方法
- SSH连接超时解决方法
- Spring数据库数据源JDBC连接池连接MySQL的超时问题
- Mysql配置Spring配C3P0连接池
- MYSQL 连接超时问题
- MySQL连接超时.
- MySQL连接超时
- mysql连接超时问题
- 这里不再更新
- 二、八、十、十六进制的转换
- oracle学习记录之十七
- 对ArrayList中某一元素进行排序
- 电脑控制手机的另一选择——android vnc server
- Spring配置mysql连接池,连接超时解决方法
- WCF三种实例激活的类型——实践理解三种类型的区别
- mysql PID file not found and Can't connect to MySQL through socket mysql.sock
- JAVA版 之 快速排序
- SDK实现带工具栏、状态栏的窗口程序
- android 图片旋转 反锯齿
- 人类按什么动物的优点发明什么
- 提取安装文件中的文件vmnetcfg.exe
- 倒排索引(Inverted Index)