首先让我来描述问题

我有个系统是基于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连接池的问题相关推荐

  1. 使用MyBatis集成阿里巴巴druid连接池(不使用spring)

    在工作中发现mybatis默认的连接池POOLED,运行时间长了会报莫名其妙的连接失败错误.因此采用阿里巴巴的Druid数据源(码云链接 ,中文文档链接). mybatis更多数据源参考博客链接 . ...

  2. mybatis,mysql,datasource,dpcb连接池的关系

    datasource是配置数据源,顾名思义就是数据的来源,在数据源中可以配置数据是从何而来,可以是mysql,也可以是oracle,所以可以如下配置 <beanid="dataSour ...

  3. mysql开启 pscache_Druid连接池在mysql的场景PS Cache是否需要开启?

    看一下,自己项目的druid连接池是否设置了PS Cache.是否需要设置? 1. Druid的相关配置 spring: datasource: name: mysql_test type: com. ...

  4. mybatis 配置 mysql连接池_spring 5.x 系列第5篇 —— 整合 mybatis + druid 连接池 (xml配置方式)...

    项目目录结构 1. 导入依赖 创建 maven 工程,除了 Spring 的基本依赖外,还需要导入 Mybatis 和 Druid 的相关依赖: org.springframeworkgroupId& ...

  5. druid连接池初始化慢_从零开始手写 mybatis (三)jdbc pool 从零实现数据库连接池

    前景回顾 第一节 从零开始手写 mybatis(一)MVP 版本 中我们实现了一个最基本的可以运行的 mybatis. 第二节 从零开始手写 mybatis(二)mybatis interceptor ...

  6. Mybatis使用Druid连接池

    1.导入maven依赖 <dependency><groupId>org.mybatis</groupId><artifactId>mybatis< ...

  7. Druid 连接池 报错 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

    场景赘述 早晨查看项目前一天的实际运行日志,发现了 一个Springboot项目中的druid 连接池和 mysql 产生了异常信息,重连暂并未对系统产生影响 下面是具体报错信息: com.mysql ...

  8. druid连接池mysql5.7_Spring Boot 使用Druid连接池整合Mybatis-Plus连接Mysql数据库

    一.连接池 在普通的数据库访问程序中,客户程序得到的连接对象是物理连接,调用连接对象的close()方法将关闭连接,而采用连接池技术,客户程序得到的连接对象是连接池中物理连接的一个句柄,调用连接对象的 ...

  9. 低版本Druid连接池+MySQL驱动8.0,在高并发下出现线程阻塞、性能受限问题

    现象 应用升级MySQL驱动8.0后,在并发量较高时,查看监控打点,Druid连接池拿到连接并执行SQL的时间大部分都超过200ms 对系统进行压测,发现出现大量线程阻塞的情况,线程dump信息如下: ...

最新文章

  1. 【组队学习】【31期】 吃瓜教程——西瓜书+南瓜书
  2. DELL服务器有RAID,安装系统识别不到硬盘
  3. Calendar日历简单用法
  4. Apache发布TomEE 7.1,支持Java 8和MicroProfile 1.2
  5. 全民学英语,VIPKID、51Talk、伴鱼、阿卡索们还好做么?
  6. C语言高级编程:深入理解const
  7. 工作242:关于第二个git仓库提交代码
  8. Android面试总结经
  9. java实现简单的约瑟夫环问题
  10. DeepMind和Unity合作,创建虚拟世界来训练AI
  11. bash之sed与awk初步
  12. 谷歌波浪推行受阻 “医疗云”生不逢时
  13. 安川g7变频器说明书_变频器功率调整
  14. JAVA8十大新特性详解
  15. C语言多多搬果子思路,看图写话《小刺猬搬果子》
  16. C语言短除法求二进制数,C语言中实现十进制转二进制输出
  17. catagory添加属性
  18. eclipse和myeclipse的he user operation is wating问题
  19. 问题:MongoDB C# driver异常:Truncation resulted in data loss
  20. java 随机字母_如何用java随机生成一个字母

热门文章

  1. 老大让我优化数据库,我上来就分库分表,他过来就是一jio。。。
  2. ThreadLocal为什么要使用弱引用和内存泄露问题
  3. 因论文《致谢》走红全网的中科院博士,如今已是腾讯大佬!
  4. 分布式关系数据库在金融行业的创新实践
  5. 常用快捷键整理,提升工作效率!
  6. 当你 ping 的时候,你知道背后发生了什么吗?
  7. 信息化管理系统,团队效能提升的潜在价值
  8. leangoo领歌敏捷工具工作台可查看最近访问脑图和项目
  9. Matlab/Simulink ROS
  10. SQL与NoSQL区别-扩展方式