• 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配置有问题等等猜测,只有对问题永不放弃,什么问题都能得到解决..................

  • 相关阅读:
    Laravel artisan 命令工具
    WIN10安装office2003/7失败 WIN10安装office2003权限不足解决
    64windows位安装tensorflow
    Swing图层的应用——实现tooltip显示
    spring加载xml的六种方式
    ubuntu 添加右键打开方式,无法添加程序打开方式
    3.3.4 配置Tomcat的<Context>元素 (转)
    百度tn劫持解决办法
    java代理模式
    js作用域
  • 原文地址:https://www.cnblogs.com/working/p/5832545.html
Copyright © 2020-2023  润新知