当前位置: 首页 > news >正文

Druid GetConnectionTimeoutException解决方案之一

> Druid版本:v1.2.18

最近项目中经常出现:com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 120000, active 0, maxActive 128, creating 0, createErrorCount 2,但是其他平台连接这个数据源正常的
于是做了一个实验复现了这个问题:
1. 先搞一个案例一直拿连接执行
2. 中途关闭数据库模拟网络问题或者数据库服务繁忙的情况 net stop mysql
3. 然后复现了GetConnectionTimeoutException的情况
4. 再开启数据库发现数据库连接没有恢复 net start mysql

解决办法:
 //开启这两个配置就能实现断开重连了,如果没生效尝试升级一下版本1.2.16+
  druidDataSource.setBreakAfterAcquireFailure(false);
  druidDataSource.setKeepAlive(true);

public static void main(String[] args) throws Exception {Properties pro = new Properties();pro.setProperty(DruidDataSourceFactory.PROP_DRIVERCLASSNAME, "com.mysql.cj.jdbc.Driver");pro.setProperty(DruidDataSourceFactory.PROP_URL, "jdbc:mysql://localhost:3306/xxx?useCursorFetch=true");pro.setProperty(DruidDataSourceFactory.PROP_USERNAME, "root");pro.setProperty(DruidDataSourceFactory.PROP_PASSWORD, "123456");pro.setProperty(DruidDataSourceFactory.PROP_MAXWAIT, "120000");pro.setProperty(DruidDataSourceFactory.PROP_MAXACTIVE, "16");pro.setProperty(DruidDataSourceFactory.PROP_VALIDATIONQUERY, "select 1");DruidDataSource druidDataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(pro);druidDataSource.setConnectionErrorRetryAttempts(0);druidDataSource.setConnectTimeout(10*1000);druidDataSource.setSocketTimeout(90*1000);druidDataSource.setRemoveAbandoned(true);//开启这两个配置就能实现断开重连了,如果没生效尝试升级一下版本1.2.16+druidDataSource.setBreakAfterAcquireFailure(false);druidDataSource.setKeepAlive(true);druidDataSource.init();new Thread(() -> {for (int i = 0; i < 10000; i++) {try {DruidPooledConnection connection = druidDataSource.getConnection();Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery("select * from xxx");while (resultSet.next()) {System.out.println(resultSet.getString("id"));}resultSet.close();statement.close();connection.close();Thread.sleep(1000);}catch (Exception e){log.error("error", e);}}}).start();Thread.sleep(30000000);}

相关文章:

Druid GetConnectionTimeoutException解决方案之一

> Druid版本&#xff1a;v1.2.18 最近项目中经常出现&#xff1a;com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 120000, active 0, maxActive 128, creating 0, createErrorCount 2&#xff0c;但是其他平台连接这个数据源正常的 于是做了一个实验复…...

【JavaScript爬虫记录】记录一下使用JavaScript爬取m4s流视频过程(内含ffmpeg合并)

前言 前段时间发现了一个很喜欢的视频,可惜网站不让下载,简单看了一下视频是被切片成m4s格式的流文件,初步想法是将所有的流文件下载下来然后使用ffmpeg合并成一个完整的mp4,于是写了一段脚本来实现一下,电脑没有配python环境,所以使用JavaScript实现,合并功能需要安装ffmpeg,…...

CSDN2024年度总结|乾坤未定你我皆是黑马|2025一起为了梦想奋斗加油少年!!!

CSDN2024年我的创作纪念日1024天|不忘初心|努力上进|积极向前 一、前言&#xff1a;二、2024个人成长经历&#xff1a;HarmonyOS鸿蒙应用生态构建与扩展——杭州站AGI创新工坊&神经网络大模型——杭州站 三、2024年度创作总结&#xff1a;2024创作数据总结&#xff1a;博客…...

【前端】 react项目使用bootstrap、useRef和useState之间的区别和应用

一、场景描述 我想写一个轮播图的程序&#xff0c;只是把bootstrap里面的轮播图拉过来就用上感觉不是很合适&#xff0c;然后我就想自己写自动轮播&#xff0c;因此&#xff0c;这篇文章里面只是自动轮播的部分&#xff0c;没有按键跟自动轮播的衔接部分。 Ps: 本文用的是函数…...

联想电脑如何进入BIOS?

打开设置 下滑找到更新与安全 点击恢复和立即重新启动 选择疑难解答 选择UEFI固件设置 然后如果有重启点击重启 重启开机时一直点击FNF10进入BIOS界面...

蓝桥杯单片机大模板(西风)

#include <REGX52.H> #include "Key.h" #include "Seg.h" //变量声明区 unsigned char Key_Val,Key_Down,Key_Old;//按键扫描专用变量 unsigned char Key_Slow_Down;//按键减速专用变量 10ms unsigned int Seg_Slow_Down;//按键扫描专用变量 500ms …...

20250213刷机飞凌的OK3588-C_Linux5.10.209+Qt5.15.10_用户资料_R1

20250213刷机飞凌的OK3588-C_Linux5.10.209Qt5.15.10_用户资料_R1 2025/2/13 15:10 缘起&#xff1a;OK3588-C_Linux5.10.66Qt5.15.2的R5都出来了。但是公司一直在R4上面开发的&#xff0c;不想动了。 不过我的原则&#xff0c;只要是有新的系统SDK/BSP放出来&#xff0c;都先在…...

2.13学习记录

web ezSSTI 根据题意&#xff0c;这题考察ssti漏洞&#xff0c;查询有关信息得知这是一种模版攻击漏洞。这种题目可以利用工具进行解决&#xff0c;用焚靖&#xff0c;这是一个针对CTF比赛中Jinja SSTI绕过WAF的全自动脚本 根据教程安装工具和对应的依赖就可以了这个脚本会自…...

【DeepSeek】Deepseek辅组编程-通过卫星轨道计算终端距离、相对速度和多普勒频移

引言 笔者在前面的文章中&#xff0c;介绍了基于卫星轨道参数如何计算终端和卫星的距离&#xff0c;相对速度和多普勒频移。 【一文读懂】卫星轨道的轨道参数&#xff08;六根数&#xff09;和位置速度矢量转换及其在终端距离、相对速度和多普勒频移计算中的应用 Matlab程序 …...

JavaEE架构

一.架构选型 1.VM架构 VM架构通常指的是虚拟机&#xff08;Virtual Machine&#xff09;的架构。虚拟机是一种软件实现的计算机系统&#xff0c;它模拟了物理计算机的功能&#xff0c;允许在单一物理硬件上运行多个操作系统实例。虚拟机架构主要包括以下几个关键组件&#xff…...

Docker 网络的几种常见类型

目录 Docker 网络类型 桥接网络&#xff08;Bridge&#xff09; 通俗解释 特点 使用场景 示例 主机网络&#xff08;Host&#xff09; 通俗解释 特点 使用场景 示例 None 网络 通俗解释 特点 使用场景 示例 Overlay 网络 通俗解释 特点 使用场景 示例 Ma…...

C++ 常用的设计模式

1&#xff1a;单例模式&#xff1a;首先能想到的&#xff0c;最为重要的一个设计模式。确保一个类仅有一个实例&#xff0c;提供一个 全局访问点&#xff0c;惯用做法是屏蔽构造数访问&#xff08;设为private&#xff09;&#xff0c;通过static 权限达到间接访问调用的目的…...

【设计模式】01- 一文理解常用设计模式-“创建型模式”篇

一、前言 最近在复习设计模式&#xff0c;撰写、整理了内容和代码片段&#xff0c;和大家一起交流学习。 设计模式是软件设计中常见问题的典型解决方案。 修改记录 更新内容更新时间第一版 250212 更新了对文章中的模式代码示范的解释250214 二、模式分类 模式可以根据其意图…...

在ArcGIS JS API中使用WebGL实现波纹扩散特效

在现代WebGIS开发中&#xff0c;ArcGIS JS API 是一个非常强大的工具&#xff0c;它允许开发者创建丰富的地理信息应用。结合WebGL技术&#xff0c;我们可以实现更加复杂和炫酷的可视化效果。本文将介绍如何使用ArcGIS JS API结合WebGL实现一个波纹扩散特效。 波纹扩散效果 1 概…...

我用AI做数据分析之四种堆叠聚合模型的比较

我用AI做数据分析之四种堆叠聚合模型的比较 这里AI数据分析不仅仅是指AI生成代码的能力&#xff0c;我想是测试AI数据分析方面的四个能力&#xff0c;理解人类指令的能力、撰写代码的能力、执行代码的能力和解释结果的能力。如果这四个能力都达到了相当的水准&#xff0c;才可…...

《LSTM与HMM:序列建模领域的双雄对决》

在序列建模的广阔领域中&#xff0c;长短期记忆网络&#xff08;LSTM&#xff09;和隐马尔可夫模型&#xff08;HMM&#xff09;都是极为重要的工具&#xff0c;它们各自有着独特的优势和应用场景。下面将对两者在序列建模上的异同进行深入探讨。 相同点 序列数据处理能力&…...

Flutter 的 Widget Key 提议大调整?深入聊一聊 Key 的作用

Flutter 的 Widget Key 提议大调整&#xff1f;深入聊一聊 Key 的作用 在 Flutter 里&#xff0c;Key 对象存在的目的主要是区分和维持 Widget 的状态&#xff0c;它是控件在渲染树里的「复用」标识之一&#xff0c;这一点在之前的《深入 Flutter 和 Compose 在 UI 渲染刷新时…...

只需三步!5分钟本地部署deep seek——MAC环境

MAC本地部署deep seek 第一步:下载Ollama第二步:下载deepseek-r1模型第三步&#xff1a;安装谷歌浏览器插件 第一步:下载Ollama 打开此网址&#xff1a;https://ollama.com/&#xff0c;点击下载即可&#xff0c;如果网络比较慢可使用文末百度网盘链接 注&#xff1a;Ollama是…...

网络工程师 (31)VLAN

前言 VLAN&#xff08;Virtual Local Area Network&#xff09;即虚拟局域网&#xff0c;是一种将物理局域网划分成多个逻辑上独立的虚拟网络的技术。 一、定义与特点 定义&#xff1a;VLAN是对连接到的第二层交换机端口的网络用户的逻辑分段&#xff0c;不受网络用户的物理位置…...

浏览器网络请求全流程深度解析

一、核心流程概述 现代浏览器的网络请求过程是一个分层协作的精密系统&#xff0c;涉及应用层协议、传输层协议、操作系统内核及网络基础设施的协同工作。整个过程可抽象为以下关键阶段&#xff1a; 请求构建与初始化DNS解析与寻址TCP连接建立HTTP协议交互响应处理与资源解析…...

从HIDL到HAL3:手把手拆解Android相机Provider进程的通信与数据流转

Android相机架构深度解析&#xff1a;从HIDL到HAL3的数据流转与性能优化 在移动影像技术快速迭代的今天&#xff0c;Android相机系统的架构设计直接影响着成像质量与用户体验。作为连接应用层与硬件层的核心枢纽&#xff0c;Camera Provider进程通过HIDL接口与Camera Service通…...

X鱼屏蔽codex后,我的优质token粮仓告急

自从codex被X鱼全面封杀下架&#xff0c;我的优质token来源就又少了关键来源渠道了&#xff0c;多么怀念40元90刀每天额度月卡&#xff0c;30元1000刀的日子&#xff0c;看着其它中转站那些0.15元/刀&#xff0c;0.3元/刀&#xff0c;百万token等于4刀左右吧。一点兴趣都没有&a…...

优化敏感焦虑型依恋

用几个学科的顶层思维&#xff0c;把你的问题重新教育一遍&#xff1a;你不是要“变得迟钝”&#xff0c;你是要完成一次升级&#xff1a;从“敏感地寻找危险”&#xff0c;升级为“敏锐地识别规律”。 从“害怕失去关系”&#xff0c;升级为“有能力经营关系”。 从“被情绪牵…...

Nintendo Switch大气层系统:7步从零安装到精通优化完整指南

Nintendo Switch大气层系统&#xff1a;7步从零安装到精通优化完整指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 想要彻底释放你的Nintendo Switch游戏机潜力吗&#xff1f;Atmosphe…...

Sonixd多语言支持详解:国际化(i18n)实现原理和本地化最佳实践

Sonixd多语言支持详解&#xff1a;国际化(i18n)实现原理和本地化最佳实践 【免费下载链接】sonixd A full-featured Subsonic/Jellyfin compatible desktop music player 项目地址: https://gitcode.com/gh_mirrors/so/sonixd Sonixd是一款功能强大的桌面音乐播放器&…...

把边界立起来,理解 ABAP Cloud 的几根主梁

项目里最让人头疼的时刻,往往不是写代码那天,而是系统升级后的那个早晨。很多团队都有过类似体验,业务明明没有改,几个增强点、几段直连标准表的逻辑、几次对未发布对象的调用,却在升级后一起冒烟。表面上看,这是兼容性问题,往深处看,其实是开发边界没有真正立起来。AB…...

ATE PCB组装:半导体测试中的精密工艺与挑战解析

1. ATE PCB组装&#xff1a;半导体测试的基石与挑战 在半导体行业&#xff0c;一颗芯片从设计到最终封装出厂&#xff0c;其性能与可靠性的验证是决定产品成败的最后一环。随着芯片工艺节点不断微缩&#xff0c;集成度呈指数级增长&#xff0c;对测试环节的要求也达到了前所未有…...

Void编辑器:轻量级插件化架构与LSP/Tree-sitter深度集成解析

1. 项目概述&#xff1a;一个为“创造者”而生的现代编辑器最近在开发者社区里&#xff0c;一个名为“Void”的编辑器项目引起了我的注意。它不像那些我们耳熟能详的庞然大物&#xff0c;比如 VS Code 或 Sublime Text&#xff0c;一上来就带着庞大的生态和复杂的功能。Void 给…...

GTK+命令行神器Zenity:在Ubuntu 22.04上快速创建图形对话框的保姆级指南

GTK命令行神器Zenity&#xff1a;在Ubuntu 22.04上快速创建图形对话框的保姆级指南 如果你是一位Linux桌面用户或开发者&#xff0c;经常需要在命令行和图形界面之间切换&#xff0c;那么Zenity绝对是你的得力助手。这款轻量级的GTK命令行工具&#xff0c;能够让你在Shell脚本中…...

ARM架构TTBR0_EL2与TTBR1_EL1寄存器深度解析

1. ARM架构内存管理基础解析在ARMv8/v9体系结构中&#xff0c;内存管理单元&#xff08;MMU&#xff09;通过多级页表机制实现虚拟地址到物理地址的转换。这种设计为现代操作系统提供了灵活的内存管理能力&#xff0c;支持进程隔离、内存保护等关键特性。作为MMU的核心组件&…...