too many connections

在项目的构建过程中,多次出现了“too many connections”的错误提示

对于以上的错误,一直以为是因为mysql的最大连接设置的问题,经过了设置的修改,却发现并没有任何效果,所以也就排除了这个原因导致的。
百度了一番,一直有人说是因为使用完数据库连接之后没有close掉,但是仔细检查了一边代码,发现连接都有close掉,然后又排除了这个原因。
知道问题再次出现,百度了一番,才发现原来是在加载spring bean的时候使用了classpathxmlApplicationContext加载配置文件导致的问题,因为每一次加载都会重新实例化一个bean,这就导致了多次连接。

再次更新:这个问题一直无法解决,使用了spring中的ApplicatinContextAware去尝试着解决这个问题,却发现根本找不到相对应的bean,没有办法重新看了一边配置,发现在datasourse配置中有一个destroy-method= close的属性,把该属性去掉看一下效果如何,暂时没有遇到too many connections的错误。

2017-04-06

在配置中去掉destroy-method=close并没有彻底解决以上的问题,只是在一定程度上缓解了以上的问题,同时查询的速度比较慢。所以根本的解决方法还是使用另外一种方法去获取配置文件中的bean,迫不得已,只能去研究一下为什么ApplicatinContextAware获取到的bean是一个null。最后找到解决方法,原来是自己之前的配置文件中并没有去配置继承ApplicatinContextAware的那一个类的bean。

关于bean的多种获取方法,具体见以下的博客如何获取bean

获取到bean之后我以为的问题也就相应地解决了,因为自己所做的后台网站速度明显比之前的快速了许多,同时也没有马上出现问题,但是时间一久,又发现网页刷新的时候直接卡住,无法刷新,仔细检查了一遍,发现自己框架中hibernate的一个session没有关闭,导致连接池无法释放。
到此为止,这个问题真正地解决了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值