首页 >> 大全

Spring c3p0连接池无法释放解决方案

2023-12-18 大全 22 作者:考证青年

通过c3p0配置连接池的时候,在进行压力测试的时候,日志出现了这样一个错误:Data of , from : “Too many ”

数据库的连接过多。

然后查看mysql的最大连接数,为100。

这里写图片描述

于是便更改最大连接池。

由于MySQL默认的最大连接数为100,MySQL允许的最大连接数16384。下由于线程数限制MySQL最大连接数为2048。

于是更改为2000。但是数据库连接池最大只有这多,如果建立连接数过多,依旧会超载。

所以要从根本上解决,那么就要释放连接池。

参考博客:

解决办法:

将().()更改为().()。

().() 这种方法从管理的中创建一个,此不是线程绑定的。当执行完一个实务的时候自动关闭.这种方法不用手动管理实务,但是同一个线程多次的开启和关闭,浪费系统资源和影响执行效率。而且通过这种方式打开的不会自动关闭,现象时查询多次之后连接池满了,不会再继续查询了。

().()方法从管理的中创建一个绑定线程的.会根据该线程的执行情况来自动判断是关闭还是延迟关闭。这样做可以避免手动的管理实务,同时一个线程最多开启和关闭一次又可以提高程序的性能。

dbcp连接池释放连接__池式连接请求超时的原因

还有一种原因可能是每次查询都会初始化连接数:

。导致查询多次就会造成too many 错误。因此删除掉,应该在c3p0的文件配置里面配置。

通过更改方法后,又出现这种错误:No bound to 。

解决办法:

感觉是事务的问题,检查了下配置,的确配置了事务,但是为什么会报这个错呢。查看事物注解,发现是因为@ 注解未写在正确的地方,成功修改之后便好了。

参考: 。

还有可能的原因是没有在没有在 管理而报的错。添加这句:

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了