mybatis+Druid连接池的问题
2016-09-02 10:38
211 查看
首先让我来描述问题
我有个系统是基于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配置有问题等等猜测,只有对问题永不放弃,什么问题都能得到解决..................
我有个系统是基于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配置有问题等等猜测,只有对问题永不放弃,什么问题都能得到解决..................
相关文章推荐
- JBuilder Editor中光标不能正确定位问题的解决
- 不改一行代码定位线上性能问题
- 目录横穿“(Ttaversal)”问题的解决办法
- 软件测试问题登记表
- 软件测试问题汇总表
- 软件使用问题登记表
- 升级到Delphi 6 - 兼容性问题之二
- 升级到Delphi 6 - 兼容性问题之三(完)
- 升级到Delphi 6 - 兼容性问题(中文全文)
- 如何分析问题和需求?如何界定问题主次?。。。。
- WINAMP SDK 常见问题回答(FAQ)
- 迁移到 ASP .NET:需考虑的重要问题
- jsp、servlet关于中文问题再谈
- 将Socket应用程序从Unix向Windows移植中应注意的几点问题
- XML 中的常见问题
- 一个关于#include的问题
- [导入]转贴:C++语言常见问题解:#105 ~ #120
- 绘制位图的问题
- 使用ActiveX控件开发网页常见的问题
- 如何解决visual interdev的调试问题