内容简介:这周的一天早上一个定时任务突然报错,错误如下字面上看是数据库链接出了问题。最近才把应用的数据库链接池从tomcat切换到druid,所以第一个怀疑的就是druid。
这周的一天早上一个定时任务突然报错,错误如下
### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 67,409 milliseconds ago. The last packet sent successfully to the server was 60,060 milliseconds ago. ### The error may exist in file [xxxxx.xml] ### The error may involve defaultParameterMap ### The error occurred while setting parameters
字面上看是数据库链接出了问题。
最近才把应用的数据库链接池从tomcat切换到druid,所以第一个怀疑的就是druid。
网上搜索搜索一下,发现大部分答案都基本是在连接取出之前需要进行测试,连接池一般支持这样的配置。稍微检查了一下,发现项目中已经配置了相关的配置,所以理论上不是这个问题导致的。
然后仔细研究了一下这个问题,发现这个问题其实蛮常见的,错误信息是一样的,但是具体对应的情况却是各不相同的。比如上文提到的是由于连接超时连接池再取出连接前没有进行测试,这只是一种情况,还有一种比较常见的情况是连接已经建立,但是由于慢查询或者服务器压力过大,导致长时间没有数据返回,占用数据库连接,进而达到数据库最大允许的连接数。
根据这个思路检查了一下数据库平台,从监控中可以看到有一个慢查询持续了60余秒,优化掉这个慢查询就解决了这个问题。
当然还有一些其他比较基本的情况,比如数据库地址错误,导致直接无法连接,或者是数据库配置有误,导致无法接受连接,不过这种问题一般出现在初次连接的时候,一般不会发生,在稳定运行的线上环境。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- acme.sh 续期问题(路径问题)
- 缓存的一些问题和一些加密算法【缓存问题】
- 如何把设计问题转化为数学问题(方法论)
- 推荐系统中的冷启动问题和探索利用问题
- GraphQL 教程(六)—— N+1问题和缓存等问题
- Golang 并发问题(四)之单核上的并发问题
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
编写可读代码的艺术
Boswell, D.、Foucher, T. / 尹哲、郑秀雯 / 机械工业出版社 / 2012-7-10 / 59.00元
细节决定成败,思路清晰、言简意赅的代码让程序员一目了然;而格式凌乱、拖沓冗长的代码让程序员一头雾水。除了可以正确运行以外,优秀的代码必须具备良好的可读性,编写的代码要使其他人能在最短的时间内理解才行。本书旨在强调代码对人的友好性和可读性。 本书关注编码的细节,总结了很多提高代码可读性的小技巧,看似都微不足道,但是对于整个软件系统的开发而言,它们与宏观的架构决策、设计思想、指导原则同样重要。编......一起来看看 《编写可读代码的艺术》 这本书的介绍吧!
在线进制转换器
各进制数互转换器
Markdown 在线编辑器
Markdown 在线编辑器