com.mysql.cj.jdbc.exceptions.CommunicationsException Communications link failure 问题解决

前言:

一般这个报错大多是网络原因导致的,确保你不是网络问题再往下看

问题

在一个方法上(该方法非常复杂执行时间长)加了 @Transactional(rollbackFor = Exception.class)后出现了如下图所示的错误

解决:

经过排查并非网络问题。复现时,在数据库执行show processlist;发现出现了很多存在时间非常长的锁(非死锁),那么大概率是因为数据库连接池的连接数不够导致的数据库连接失败中断。在长事务中每次进行数据库操作都要占用连接数,并且因为事务没有提交的原因,一直没有释放连接。细化事务的范围即可(不保证整个过程一致)
比如你的主方法在A类,调用了B类的方法,就别在A类方法上加事务注解,而是在B类被调用的上方法加。如果A类调用B类方法是多次调用的话(比如循环),那么他会在B类开启你循环次数个事务,每个事务独立。例如你调用了100次,前99次全成功,最后一次失败,他是不会回滚前99次的操作的,而是会回滚你第100次的操作。

扩展解释:

@Override public void B() { // 操作数据库的方法 } @Transactional(rollbackFor = Exception.class) public void A(List<String> strs) { for (String s: strs) { B(); } } @Override @Transactional(rollbackFor = Exception.class) public void B() { // 操作数据库的方法 } public void A(List<String> strs) { for (String s: strs) { B(); } }

第一段代码中只会启动一个事务,在循环的数据库操作还未全部完成之前(事务未提交)会一直占用连接池,第二段代码中,会启动strs集合大小个事务,遍历完一个元素便提交一次事务。如果两个方法都加注解,子方法启动事务的时候会判断上一层有没有事务,如果有那么会加入到上一层事务管理,而不是自己启一个事务。这就涉及到事务的传播特性了

2024.1.04补充

在调试一个复杂的导出时,又出现了Communications link failure的错误,第一反应就是sql执行时间太长超过了druid设置的maxwait(获取连接等待超时时间)。
分析sql,执行explain 你的sql。id为执行优先级,数值一样则从上到下执行。其他参数我就不解释了,网上都有(搜索explain各个参数的意义),主要看table(表别名)、type(扫描类型,不要看到all就觉得很影响性能,其实表小的话不走索引反而更快)、row(预估扫描条数,如果数量很大,那你的sql就需要优化了)、extra(一般是看排序请客,尽量让Using index出现多点)。
如果条件允许,我建议把所有连接条件中的字段(一般是id为主)和order by 、 group by后面的字段都加索引

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1125359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【NLP】Hugging Face使用指南

文章目录一、Hugging Face介绍二、加载并使用预训练模型2.1 查找预训练模型2.2 实际案例2.2.1 调取预训练模型2.2.2 如何在具体的推理任务中使用预训练模型&#xff1f;2.3 如何在训练前就判定好哪些模型适用于实际任务&#xff1f;三、词嵌入工具与词嵌入模型3.1 调用分词器&a…

Git合并时忽略文件的6种技巧

有几种方法可以在 git merge 时忽略特定文件的合并&#xff1a;方法一&#xff1a;使用 .gitattributes 文件&#xff08;推荐&#xff09;在项目根目录创建或编辑 .gitattributes 文件&#xff1a;infostation.js mergeours *.js mergeours # 如果需要忽略所有js文件的合并然…

在 Ubuntu 下载 Typora

1.下载 Typora 安装包 鱼香ROS_Typora 安装地址https://fishros.org.cn/forum/topic/23/%E5%AE%89%E8%A3%85typora%E6%9C%80%E5%90%8E%E7%9A%84%E5%85%8D%E8%B4%B9%E7%89%88 2.不解压&#xff0c;下载 Typora 首先找到压缩包下载地址&#xff0c;右键空白处选择在终端中打开&…

RK3588+kylin V10安装docker

检查内核是否支持docker 方法&#xff1a;工具分享&#xff1a;检测内核配置是否支持Docker等容器 (1)检查卸载老版本Docker sudo apt-get remove docker docker-engine docker.io containerd runc (2)安装Docker依赖 sudo apt-get install ca-certificates curl gnupg lsb…

ATL80.dll文件丢失找不到 打不开问题 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

atl110.dll文件丢失找不到 打不开问题 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

最新爆火6款免费AI论文神器!PaperTan一站式搞定选题降重

紧急预警&#xff1a;论文截止只剩72小时&#xff1f;这些AI工具能救你命&#xff01; 凌晨3点的图书馆、满屏的文献标红、导师催改的第12条消息——如果你正在经历这些&#xff0c;现在就是你最后的急救机会&#xff01;2024年最新爆火的6款免费AI论文工具&#xff0c;能帮你…

深度测评专科生必备9款AI论文平台:2026最新对比与推荐

深度测评专科生必备9款AI论文平台&#xff1a;2026最新对比与推荐 2026年专科生论文写作工具测评&#xff1a;为何需要一份权威榜单&#xff1f; 随着AI技术的不断进步&#xff0c;越来越多的专科生开始借助AI工具提升论文写作效率。然而&#xff0c;面对市场上五花八门的平台&…

Linux 命令行实战训练营(

Linux 命令行实战训练营&#xff08;Linux Command Line Bootcamp&#xff09;课程基本信息- 发布时间&#xff1a;2026年1月 - 格式与规格&#xff1a;MP4 格式 | 视频 1920x1080 分辨率 - 语言&#xff1a;英语 - 时长&#xff1a;28 节课&#xff08;总计 4 小时 &#xff…

VisionPro二开之九点标定

VisionPro二开之九点标定 方式1&#xff1a; CogCalibNPointToNPointTool方式2 安装平移九点标定 using System; using System.Collections.Generic; using MathNet.Numerics.LinearAlgebra;namespace 平移标定的数学公式 {public class CoordinateCalibration{// 存储标定点对…

Design Fluid Viscous Dampers in SAP2000 and Peform3D

在 SAP2000 和 Perform3D 中设计粘滞流体阻尼器课程基本信息- 发布时间&#xff1a;2026年 - 格式与规格&#xff1a;MP4 格式 - 语言&#xff1a;英语 - 时长&#xff1a;1小时 - 大小&#xff1a;950 MB - 核心主题&#xff1a;基于 SAP2000 的实用抗震阻尼器建模、非线性分析…

2026新测!这几款款亲测有效的降ai率工具推荐,含手把手教你论文降ai,查重率从红变绿只需几分钟!

写论文最怕什么&#xff1f;不是卡在查重&#xff0c;而是AI率高得离谱。明明自己码了一万多字&#xff0c;检测报告一出来&#xff0c;红到眼晕。别急&#xff0c;我这篇就是给你准备的——从免费降ai率方法到收费工具实测&#xff0c;帮你彻底搞清楚怎么降低ai率、怎么用靠谱…

VisionPro之九点标定

VisionPro之九点标定

全网最全ai降ai方法:亲测能有效降低ai痕迹,论文降aigc从此不求人,导师看了都说好!

写论文最怕什么&#xff1f;不是卡在查重&#xff0c;而是AI率高得离谱。明明自己码了一万多字&#xff0c;检测报告一出来&#xff0c;红到眼晕。别急&#xff0c;我这篇就是给你准备的——从免费降ai率方法到收费工具实测&#xff0c;帮你彻底搞清楚怎么降低ai率、怎么用靠谱…

程序媛失业第七天

这是小红书上一位上海的Java程序员失业想转行的分享贴。 Java开发的就业市场正在经历结构性调整&#xff0c;竞争日益激烈 传统纯业务开发岗位&#xff08;如仅完成增删改查业务的后端工程师&#xff09;的需求&#xff0c;特别是入门级岗位&#xff0c;正显著萎缩。随着企业…

基于Python+Django的社区服务管理系统设计与实现

前言 &#x1f31e;博主介绍&#xff1a;✌CSDN特邀作者、全栈领域优质创作者、10年IT从业经验、码云/掘金/知乎/B站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战&#xff0c;以及程序定制化开发、文档编写、答疑辅导等。✌…

终极降AI指南!这款能让你相见恨晚的论文降aigc神器,实测降ai效果立竿见影

写论文最怕什么&#xff1f;不是卡在查重&#xff0c;而是AI率高得离谱。明明自己码了一万多字&#xff0c;检测报告一出来&#xff0c;红到眼晕。别急&#xff0c;我这篇就是给你准备的——从免费降ai率方法到收费工具实测&#xff0c;帮你彻底搞清楚怎么降低ai率、怎么用靠谱…

【AI】各类型开源模型排行

开源翻译模型 Top5 截至 2025 年第四季度的公开评测与赛果&#xff0c;综合 WMT-25、TransBench 以及社区人工打分&#xff0c;开源翻译模型 Top5 如下&#xff08;按“多语种平均 BLEURT COMET 人工分”排序&#xff0c;括号内为亮点语向&#xff09;&#xff1a;Tencent Hun…

论文jiangAI干货!4款aigc免费降重工具,亲测降低ai率的同时保留原意,让你的文章更有“人味”

写论文最怕什么&#xff1f;不是卡在查重&#xff0c;而是AI率高得离谱。明明自己码了一万多字&#xff0c;检测报告一出来&#xff0c;红到眼晕。别急&#xff0c;我这篇就是给你准备的——从免费降ai率方法到收费工具实测&#xff0c;帮你彻底搞清楚怎么降低ai率、怎么用靠谱…