springMvc数据库连接配置错误情况下,Druid一直初始化,导致线程数爆表

蒋沧浪 2017-12-06 10:40:42
问题是这样的,我的框架是SpringMVC+mybatis,连接池用的是druid,现在数据库连接配置错误,导致druid初始化失败,但是springmvc的初始化并没有停止,后面继续初始化sqlSessionFactory,自然也是失败,还有各种mapper,这里面存在一个依赖链,mapper->sqlsessionfactory->datasource,所以每次初始化mapper,被依赖的datasource和sqlsessionfactory都初始化失败,这两个对象就会被重复初始化,但是依然还是失败,问题在于,datasource初始化失败之后依然会创建2个线程,
createAndStartCreatorThread();
createAndStartDestroyThread();
即每个连接池包含的创建线程和销毁线程。。。(无法传图,见谅)
巨量线程数,线程名字如下:
Druid-ConnectionPool-Create-XXXXX
Druid-ConnectionPool-Destory-XXXXX
我也有想过,毕竟mapper数量有限,可能一直加载,加载完了可能就会出现一个峰值,不会再继续上涨,但是不是这样的,据我观察,还是会无限上涨,最后导致崩溃,linux下问题尤为明显,不仅仅是线程数,伴随之还有内存的消耗。

求助各位大神有没有遇到过,求解答,在线等

...全文
635 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我也碰到这个问题了,druid数据库连接串配置错误,初始化后台一直请求,最终导致了linux内存溢出,不知道哪位大神有什么解决方案?
蒋沧浪 2017-12-06
  • 打赏
  • 举报
回复
引用 1 楼 Inhibitory 的回复:
用 druid 1.1.5,重现不了这个问题
我用1.1.6也尝试了,还是有这个问题 上面忘记说我的配置了,比如正确的配置应该这样的 jdbc:postgresql://IP:5432/dbname 然后我这边修改成 jdbc:postgresql://IP:5432/dbname1111 这样就会初始化失败
Inhibitory 2017-12-06
  • 打赏
  • 举报
回复
用 druid 1.1.5,重现不了这个问题

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧