mybatis mysql Druid_mybatis+Druid连接池的问题
首先让我来描述问题
我有个系统是基于springmvc+mybatis+mysql+druid的,启动系统刚开始用没有问题,但是用着用着系统表象就是卡死
分析:
1:通过表象是不是有可能数据库锁表了,通过jvm的jstack -l pid(进程id)
如何得到进程id呢?--到jdk安装的bin目录执行 jps命令得到pid
打印出堆栈信息
此时没办法只能看druid的源码找到
此时要引起注意,看源码的时候一点要注意if条件的地方,此时我考虑是不是maxWait没有配置默认为0,此时我到自己的配置文件中配置
然后再次尝试,系统依然还是挂了,在此运行jstack堆栈信息再没有出现上面的错误,到此问题没有得到解决,告一段落
此时我发现用Druid它提供一个图形化界面
在没有解决问题之前这两个值一直不相等,打开连接数和关闭数随着请求的增多在增大,增到到连接池最大数直接挂了,问题终于算找到了,如何解决呢
1:是不是配置文件有问题,到处找资料,尝试,问题没有得到解决
2:尝试不同的url请求,其中有些url是不会扩大打开和关闭连接数之差,有些会扩大(此时问题又在缩小范围)
3:仔细看那些扩大范围的请求,发现,这些请求都是需要分页的请求,那些不会扩大的都是不涉及到分页的请求(问题又在缩小范围)
4:mybatis分页我是写了个拦截器通过Jdbc分页,此时仔细看代码发现代码里面,当打开数据库连接的时候有个连接对象忘记关闭了,就是如下的红色代码
加上去之后,再次处理问题,问题得到解决,不管怎么请求现在打开数和关闭数数据永远相等,系统正常,问题得到解决,OH Good!!!!!!
其实之间想如果这条路走不通,我想是不是可能druid版本问题,如果此条路行不通,打算换用其他连接池试试,还有会不时是spring配置有问题等等猜测,只有对问题永不放弃,什么问题都能得到解决..................
mybatis mysql Druid_mybatis+Druid连接池的问题相关推荐
- 使用MyBatis集成阿里巴巴druid连接池(不使用spring)
在工作中发现mybatis默认的连接池POOLED,运行时间长了会报莫名其妙的连接失败错误.因此采用阿里巴巴的Druid数据源(码云链接 ,中文文档链接). mybatis更多数据源参考博客链接 . ...
- mybatis,mysql,datasource,dpcb连接池的关系
datasource是配置数据源,顾名思义就是数据的来源,在数据源中可以配置数据是从何而来,可以是mysql,也可以是oracle,所以可以如下配置 <beanid="dataSour ...
- mysql开启 pscache_Druid连接池在mysql的场景PS Cache是否需要开启?
看一下,自己项目的druid连接池是否设置了PS Cache.是否需要设置? 1. Druid的相关配置 spring: datasource: name: mysql_test type: com. ...
- mybatis 配置 mysql连接池_spring 5.x 系列第5篇 —— 整合 mybatis + druid 连接池 (xml配置方式)...
项目目录结构 1. 导入依赖 创建 maven 工程,除了 Spring 的基本依赖外,还需要导入 Mybatis 和 Druid 的相关依赖: org.springframeworkgroupId& ...
- druid连接池初始化慢_从零开始手写 mybatis (三)jdbc pool 从零实现数据库连接池
前景回顾 第一节 从零开始手写 mybatis(一)MVP 版本 中我们实现了一个最基本的可以运行的 mybatis. 第二节 从零开始手写 mybatis(二)mybatis interceptor ...
- Mybatis使用Druid连接池
1.导入maven依赖 <dependency><groupId>org.mybatis</groupId><artifactId>mybatis< ...
- Druid 连接池 报错 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
场景赘述 早晨查看项目前一天的实际运行日志,发现了 一个Springboot项目中的druid 连接池和 mysql 产生了异常信息,重连暂并未对系统产生影响 下面是具体报错信息: com.mysql ...
- druid连接池mysql5.7_Spring Boot 使用Druid连接池整合Mybatis-Plus连接Mysql数据库
一.连接池 在普通的数据库访问程序中,客户程序得到的连接对象是物理连接,调用连接对象的close()方法将关闭连接,而采用连接池技术,客户程序得到的连接对象是连接池中物理连接的一个句柄,调用连接对象的 ...
- 低版本Druid连接池+MySQL驱动8.0,在高并发下出现线程阻塞、性能受限问题
现象 应用升级MySQL驱动8.0后,在并发量较高时,查看监控打点,Druid连接池拿到连接并执行SQL的时间大部分都超过200ms 对系统进行压测,发现出现大量线程阻塞的情况,线程dump信息如下: ...
最新文章
- 【组队学习】【31期】 吃瓜教程——西瓜书+南瓜书
- DELL服务器有RAID,安装系统识别不到硬盘
- Calendar日历简单用法
- Apache发布TomEE 7.1,支持Java 8和MicroProfile 1.2
- 全民学英语,VIPKID、51Talk、伴鱼、阿卡索们还好做么?
- C语言高级编程:深入理解const
- 工作242:关于第二个git仓库提交代码
- Android面试总结经
- java实现简单的约瑟夫环问题
- DeepMind和Unity合作,创建虚拟世界来训练AI
- bash之sed与awk初步
- 谷歌波浪推行受阻 “医疗云”生不逢时
- 安川g7变频器说明书_变频器功率调整
- JAVA8十大新特性详解
- C语言多多搬果子思路,看图写话《小刺猬搬果子》
- C语言短除法求二进制数,C语言中实现十进制转二进制输出
- catagory添加属性
- eclipse和myeclipse的he user operation is wating问题
- 问题:MongoDB C# driver异常:Truncation resulted in data loss
- java 随机字母_如何用java随机生成一个字母