DBCP连接池防止mysql 8小时超时

Spring数据库数据源JDBC连接池连接MySQL的超时问题 Spring数据库数据源JDBC连接池连接MySQL的超时问题,Spring 数据库数据源DBCP配置说明 阅读详情

解决的思路是:MySQL配置中my.cnf的wait_timeout值一定要大于等于连接池种的idle_timeout值。否则mysql会在wait_timeout的时间后关闭连接,默认的关闭连接的时间为8小时。

MySQL连接时,服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。connections如果空闲超过8小时,Mysql将其断开,而DBCP并不知道该connection已经失效,如果这时有Client请求connection,DBCP将该失效的Connection提供给Client,将会造成异常。

那样,在DBCP中我们需要处理好以下问题:
1、对每个连接进行检查
2、对一次操作数据库超过多少时间的连接进行移除
3、每隔多少时间检测一次连接
4、一个连接在连接多少时间后,就必须删除

applicationContext.xml具体配置:

 <bean id="dataSource"
            class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName"
                value="com.mysql.jdbc.Driver">
            </property>
            <property name="url"
                value="jdbc:mysql://localhost:3306/mylog">
            </property>
            <property name="maxWait" value="20000">  </property>
            <property name="testOnBorrow" value="true"></property>
            <property name="testOnReturn" value="true"></property>
            <property name="testWhileIdle" value="true"></property>
            <property name="validationQuery" value="SELECT 1"></property>
            <property name="timeBetweenEvictionRunsMillis" value="3600000"></property>
            <property name="numTestsPerEvictionRun" value="50"></property>
            <property name="minEvictableIdleTimeMillis" value="120000"></property>
            <property name="removeAbandoned" value="true"/>
            <property name="removeAbandonedTimeout" value="6000000"/>
            <property name="username" value="root"></property>
            <property name="password" value="123456"></property>
        </bean>
mysql8 DBCP连接池jar依赖 用于实现DBCP连接池所用的JAR依赖文件,包括数据库驱动及创建连接池所需的其他依赖: * commons-collections  * commons-dbcp2  * commons-logging  * commons-pool2  * mysql-connector 立即下载

相关推荐

qemu(2) -- 定制开发板

向qemu源码中添加自定义开发板

xflm的博客 842

springboot2.0集成dbcp2连接mysql

Dev environment : maven 3.54 、mysql 8、jdk 1.8 、 springboot 2.0 项目 DEMO 如下: https://github.com/medoo-Ai/springbootMYSQL 1、创建maven项目,引入依赖,配置yml 配置文件 2、 监听数据库连接池的类型,在 database 包下 @Component pub...

Syntacticsugar's blog 2371

《python神经网络编程》程序实现

《python神经网络编程》程序实现 通过对这本书的学习,结合这本书的内容: 完成了以下代码: 其中NN.py实现了一个类,这个类可以完成神经网络的初始化,训练以及输入数据并得出结果。 而run.py则是对神经网络类的使用 NN.py: import numpy import scipy.special #神经网络类的实现 class neuralNetwork: #构造函数初始化类 def __init__(self,inputnodes,hiddennodes,outputnodes

ms8617484的博客 619

连接池(dbcp)连接mysql8

连接池(dbcp)连接mysql8时出现这样一个bug java.sql.SQLException: Cannot create PoolableConnectionFactory (The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'server

m0_37528968的博客 1064

手把手教你用DCA1000EVM解析IWR6843毫米波雷达数据(附MATLAB代码)

本文提供了一份详尽的实战指南,手把手教你使用DCA1000EVM采集并解析TI毫米波雷达IWR6843的原始数据。内容涵盖硬件连接配置、mmWave Studio参数设置、LVDS数据流结构解析,并附有核心MATLAB代码,详细演示了从原始二进制文件到距离-速度谱的信号处理全链路,帮助开发者快速掌握数据解析与处理的关键步骤。

terraform7cloud的博客 227

时间序列聚类在股票市场分析中的实践与优化

时间序列聚类是一种面向动态行为建模的无监督学习方法,其核心在于通过语义感知的距离度量(如DTW)捕捉价格形态的相位弹性与结构相似性,而非依赖静态数值或标签驱动。相比K-Means等传统算法,它能有效缓解金融时序中普遍存在的噪声敏感、对齐失效与形态失真问题,从而提升聚类结果的市场可解释性与策略鲁棒性。该技术已广泛应用于市场状态识别、行业行为分群、异常交易监测等场景,并成为构建可验证量化分析框架的关键预处理层。本文聚焦A股真实行情数据,详解从原始OHLCV到可聚类时间序列的完整链路,涵盖DTW距离计算、层次聚类

weixin_34220179的博客 828

mysql8.0创建dbcp,使用DBCP创建MySQL数据库连接池

? ? ? ? DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要3个包:commons-dbcp.jar,commons-pool.jar,commons-collections.jar。? ? ? ?由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预...

weixin_39823459的博客 442

机器学习的学习准则(期望风险最小化、经验风险最小化、结构风险最小化)

要评价模型f(x, θ)的好坏,可通过期望风险R(θ)来衡量:求期望损失R(θ)不仅需要知道损失函数还需要知道真实分布,损失函数可以通过一定的准则计算得到,但是样本空间的真实分布是未知的。所以不能直接求R(θ)。期望风险R(θ)无法计算,给定一个训练集D =,我们可以计算经验风险,经验风险就是在训练集上的平均损失:为了解决过拟合问题,引入了参数正则化来限制模型的能力。使其不要过度的最小化经验风险。这种准则就是结构风险最小化准则

... 2225

dbcp2配置参数不生效导致的请求阻塞

数据库配置不生效,数据库请求阻塞,dbcp2连接池资源耗尽

比尔·马云的博客 1374

IEEE GRSL投稿全流程避坑指南:从Latex模板到校样缴费,新手必看的7个关键节点

本文详细解析了IEEE GRSL投稿全流程中的7个关键节点,从LaTeX模板选择到校样缴费,帮助新手避免常见陷阱。特别针对图像格式转换、审稿意见回复、版权转移等环节提供实用技巧,确保投稿过程高效顺利。

weixin_28720573的博客 570

微信8.0所有URL Scheme大全:隐藏入口与使用场景详解 内附195条微信URL Scheme

URL Scheme 类似于一个协议地址,它的作用和网页的https://差不多,只不过它不是打开网页,而是直接跳转到微信App内部的功能页面。→ 打开微信扫一扫→ 打开零钱通详情→ 打开微信面对面支付微信功能的“快捷指令”。整理下来,微信的 URL Scheme 基本覆盖了支付、联系人、扫一扫、小程序、运动设备等多个入口。对开发者来说,这些 Scheme 就像是隐藏的快捷通道,在某些场景(比如支付唤起、活动红包、客服入口)能大大简化流程。微信对外部调用限制非常严格。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2189

IDEA使用连接池(dbcp)技术连接mysql8

idea使用properties配置文件和工具类创建mysql连接池(dbcp)

C19150872001的博客 1714

XCP实战系列介绍01-测量与标定底层逻辑介绍

XCP-测量与标定底层代码实现介绍,通过对相关API调用关系介绍加深开发人员对其功能的了解。

initiallizer的博客 1万+

dbcp连接mysql超时_数据库超时空闲失效-dbcp连接池参数优化

问题描述:mysql dba在mysql服务端启用了连接在空闲一定时间 (10分钟) 后,就自动关闭连接(连接失效)的功能,导致java端连接池在空闲一段时间后,连接被自动关闭(自动失效)。为了避免这种情况出现,可以在dbcp上配置空闲的时候检测连接池线程功能。一些新建的数据库,DBA设置了超时空闲失效时间(即一个连接超过多长时间空闲,该连接将失效),而我们的很多程序使用的是DBCP连接池默认参数...

weixin_39686192的博客 662

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

MYSQL 8小时断开链接问题和解决办法

MYSQL 8小时 断开链接问题解决办法有两个:第一是设置autoReconnect属性设置为true;第二是设置DBCP 时将testquery等几个属性一并设置。 问题的原因是,MySQL的参数interactive_timeout,也就是交互超时时间默认为8小时。也就是如果一个链接在8小时后,还没有和服务器交互,这个连接就会被MySQL服务器断开。因为MySQL能够承受的并发连接有限

for ever的log——永远的足迹 6958

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MySQL 数据库8小时内无请求自动断开连接

MySQL服务器默认的“wait_timeout”是28800秒即8小时,意味着如果一个连接的空闲时间超过8个小时,MySQL将自动断开该连接,

qq_39827935的博客 1855

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

tomcat7 mysql断开_tomcat7使用dbcp连接池遇到的坑

项目部署在tomcat后每隔一段时间便会报错Cause: java.sql.SQLException: Could not retrieve transation read-only status server; SQL []; Could not retrieve transation read-only status server; nested exception is java.sql.S...

weixin_28933335的博客 252

oracle hibernate 连接超时 8小时,Spring整合Hibernate_数据源Datasource_dbcp连接池

/>/>name="minIdle" value="10"/>name="validationQuery" value="select getdate()"/>value="true" />/>name="timeBetweenEvictionRunsMillis" value="3600000" />value="3600000" />(以下内容摘...

weixin_39637646的博客 465

MySQL与DBCP数据源

MySQL连接时,服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。connections如果空闲超过8小时,Mysql将其断开,而DBCP并不知道该connection已经失效,如果这时有Client请求connection,DBCP将该失效的Connection提供给Client,将会造成异常。 m

lxy1420的博客 444

dbcp连接mysql超时_dbcp数据库连接超时解决方案

1.问题Could not open Hibernate Session for transaction; JDBC begin failed2.解决方案MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开该连接,而 c3p0 连接池则以为该被断开的连接依然有效。在这种情况下,如果客户端代码向 c3p0 连接池请求连接的话,连接池就会把已经失效的连接返回给客户端...

weixin_29707757的博客 384

Apache Commons DBCP连接池生产环境配置推荐

‌核心参数关系式‌:对比现有配置:注:最终数值需通过压测确定,建议先用JMeter模拟峰值流量验证配置合理性。对于关键业务系统,建议考虑升级到Druid或HikariCP等现代连接池。

qq_33416416的博客 342

浅谈MySQL连接的“8小时问题”(wait_timeout与空闲检测)

前言 一个月前,笔者写了篇Flink维表关联方面的文章,其中将Flink异步I/O与Vert.x JDBC Client配合使用,以解决异步从MySQL获取维度数据的需求。但当时有个数据库连接方面的坑没来得及说,正好今天忙得很,随便写几句话来填一下。 发现问题 程序上到预发布环境的第二天,TaskManager日志中有时出现以下异常。 分析问题 MySQL服务器会自动关闭空闲时间超过...

LittleMagic's Blog 2846

mysql中断自动连接不上_mysql 连接池断开后自动连接

MySQL对所有连接的有效时间默认为28800秒,正好8小时,也就是说,如果一个连接8小时没有请求和操作,就会自动断开;但是对于Hibernate来说,它的连接池并不知道它所管理的连接中是否有被MySQL断开的。如果一个程序要使用数据库连接,而Hibernte的连接池分配一个已经被MySQL断开了的给程序使用,那么便会出现错误.以下是proxool连接池的解决方案数据库连接池proxool(0.9...

weixin_39574050的博客 404

MySQL 参数autoReconnect=true 解决8小时连接失效(转)

即使在创建Mysql时url中加入了autoReconnect=true参数,一但这个连接两次访问数据库的时间超出了服务器端wait_timeout的时间限制,还是会CommunicationsException: The last packet successfully received from the server was xxx milliseconds ago. 服务器端的参...

WGH100817的博客 618

一文搞懂主流数据库连接池:HikariCP、Druid、Tomcat JDBC、DBCP2,附Spring Boot实战案例!

摘要:本文对比了Java开发中主流的数据库连接池(HikariCP、Druid、TomcatJDBC、DBCP2),分析其优缺点和适用场景。HikariCP性能最强但监控弱,Druid功能全面但性能稍逊,TomcatJDBC适合轻量需求,DBCP2已淘汰。文章提供了SpringBoot中配置HikariCP和Druid的实战案例,强调连接池大小设置和资源关闭等注意事项。建议新项目优先选择HikariCP,需要监控时使用Druid,避免使用DBCP2。

qq_45202803的博客 476
上一篇: MySQL编码
下一篇: 虚拟机与宿主机互Ping
撸依天
博客等级 码龄18年 10粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值