too many connections

来源:互联网 发布:折800被淘宝封了 编辑:程序博客网 时间:2024/04/30 00:57

在项目的构建过程中,多次出现了“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 0
原创粉丝点击