服务器压力过大的情况下,生产服务器经常报数据库连接池错误,怎么解决呢?

时间:2022-10-15 10:05:54

服务器压力过大的情况下,生产服务器经常报数据库连接池错误,怎么解决呢?以下是异常信息
org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool sxgs_wssjnwdb_ds to allocate to applications, please increase the size of the pool and retry..; nested exception is weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool sxgs_wssjnwdb_ds to allocate to applications, please increase the size of the pool and retry..

16 个解决方案

#1


做个负载均衡

#2


要看瓶颈出在哪里的,它提示please increase the size of the pool and retry..
也许你只是把最大连接数调大就行了

#3


数据源写在spring配置文件中的话可以指定增长到限量之后如何增大数据库连接数量,如果配在console中如楼上,另外检查代码有没有类似datasource.getConnection的情况,这种spring不会把这个连接换回去的

#4


1. please increase the size of the pool and retry.. 增加最大连接个数看看能不能解决问题,估计比较悬
2. 如果 1 搞不定,那只能在增加服务器的数量了,这个有可能简单,有可能复杂,如果开始设计时考虑了Cluster,增加服务器数量很简单,如果不支持,那么需要改设计和程序了

#5


适当调大最大连接数量,初始化时候数量也加大

#6


引用 4 楼 Inhibitory 的回复:
1. please increase the size of the pool and retry.. 增加最大连接个数看看能不能解决问题,估计比较悬
2. 如果 1 搞不定,那只能在增加服务器的数量了,这个有可能简单,有可能复杂,如果开始设计时考虑了Cluster,增加服务器数量很简单,如果不支持,那么需要改设计和程序了


我记得好像有些数据库增加最大连接数要付费的?
关于你说的Cluster,数据库是共享资源吧,光增加服务器怎么解决连接数不够的情况?

#7


加大点连接数,或者是看看空闲断开时间能不能改小点....
不会...路过凑个热闹~~ 服务器压力过大的情况下,生产服务器经常报数据库连接池错误,怎么解决呢?

#8


引用 6 楼 Raffin 的回复:
Quote: 引用 4 楼 Inhibitory 的回复:

1. please increase the size of the pool and retry.. 增加最大连接个数看看能不能解决问题,估计比较悬
2. 如果 1 搞不定,那只能在增加服务器的数量了,这个有可能简单,有可能复杂,如果开始设计时考虑了Cluster,增加服务器数量很简单,如果不支持,那么需要改设计和程序了


我记得好像有些数据库增加最大连接数要付费的?
关于你说的Cluster,数据库是共享资源吧,光增加服务器怎么解决连接数不够的情况?

数据库一般都是共享的,你以前每个服务器支持100个连接,现在由10个服务器,每个支持100个链接,总共不就有1000个连接可用了?

#9


从日志看,数据库连接数已超过连接池最大上限了,可以从以下两个方面来分析:
1.检查当前数据库连接池的最大上限是多少,是否过小,如果过小则需要调大。
2.是否因未正常关闭数据库连接,导致数据库连接越来越多,直到超过连接池上限。

#10


最大链接数改一下

#11


1、从表象上是连接数不够了,可以试着调大
2、查询程序是否有长事务操作占用了过多的连接
3、采用服务化,避免过多的应用服务器产生太多连接
4、数据库垂直拆分、再水平拆分
-------------------------------------------------
www.onemy.cn

#12


楼主给的信息太少,分析个毛线,楼上各位都辛苦了,乱猜,乱给建议
1.首先检查数据库给出的连接是多少,这和连接池大小没有毛线关系,
2.然后你压力大到什么程度啊,不能量化吗,都做了什么主要操作啊,
3.你程序怎么部署的啊,每个程序用连接池了吗,连接池配置都是怎样的啊
4.到底有没有连接没有关闭,这个也是能检查出来啊,
一般情况下,不需要分库分表,都没分析,说个毛线

#13


LZ想的太简单了,阐述清楚,再讨论吧

#14


引用 12 楼 tangyanbo1110 的回复:
楼主给的信息太少,分析个毛线,楼上各位都辛苦了,乱猜,乱给建议
1.首先检查数据库给出的连接是多少,这和连接池大小没有毛线关系,
2.然后你压力大到什么程度啊,不能量化吗,都做了什么主要操作啊,
3.你程序怎么部署的啊,每个程序用连接池了吗,连接池配置都是怎样的啊
4.到底有没有连接没有关闭,这个也是能检查出来啊,
一般情况下,不需要分库分表,都没分析,说个毛线


略屌.... 负载均衡....听说过,都没弄过

#15


检查代码,确认有没有正常关闭。。

#16


增加最大连接数配置,同时确保程序代码中的connection用完后正确关闭。如果这些还不行,那就只能增加服务器,做负载均衡了。

#1


做个负载均衡

#2


要看瓶颈出在哪里的,它提示please increase the size of the pool and retry..
也许你只是把最大连接数调大就行了

#3


数据源写在spring配置文件中的话可以指定增长到限量之后如何增大数据库连接数量,如果配在console中如楼上,另外检查代码有没有类似datasource.getConnection的情况,这种spring不会把这个连接换回去的

#4


1. please increase the size of the pool and retry.. 增加最大连接个数看看能不能解决问题,估计比较悬
2. 如果 1 搞不定,那只能在增加服务器的数量了,这个有可能简单,有可能复杂,如果开始设计时考虑了Cluster,增加服务器数量很简单,如果不支持,那么需要改设计和程序了

#5


适当调大最大连接数量,初始化时候数量也加大

#6


引用 4 楼 Inhibitory 的回复:
1. please increase the size of the pool and retry.. 增加最大连接个数看看能不能解决问题,估计比较悬
2. 如果 1 搞不定,那只能在增加服务器的数量了,这个有可能简单,有可能复杂,如果开始设计时考虑了Cluster,增加服务器数量很简单,如果不支持,那么需要改设计和程序了


我记得好像有些数据库增加最大连接数要付费的?
关于你说的Cluster,数据库是共享资源吧,光增加服务器怎么解决连接数不够的情况?

#7


加大点连接数,或者是看看空闲断开时间能不能改小点....
不会...路过凑个热闹~~ 服务器压力过大的情况下,生产服务器经常报数据库连接池错误,怎么解决呢?

#8


引用 6 楼 Raffin 的回复:
Quote: 引用 4 楼 Inhibitory 的回复:

1. please increase the size of the pool and retry.. 增加最大连接个数看看能不能解决问题,估计比较悬
2. 如果 1 搞不定,那只能在增加服务器的数量了,这个有可能简单,有可能复杂,如果开始设计时考虑了Cluster,增加服务器数量很简单,如果不支持,那么需要改设计和程序了


我记得好像有些数据库增加最大连接数要付费的?
关于你说的Cluster,数据库是共享资源吧,光增加服务器怎么解决连接数不够的情况?

数据库一般都是共享的,你以前每个服务器支持100个连接,现在由10个服务器,每个支持100个链接,总共不就有1000个连接可用了?

#9


从日志看,数据库连接数已超过连接池最大上限了,可以从以下两个方面来分析:
1.检查当前数据库连接池的最大上限是多少,是否过小,如果过小则需要调大。
2.是否因未正常关闭数据库连接,导致数据库连接越来越多,直到超过连接池上限。

#10


最大链接数改一下

#11


1、从表象上是连接数不够了,可以试着调大
2、查询程序是否有长事务操作占用了过多的连接
3、采用服务化,避免过多的应用服务器产生太多连接
4、数据库垂直拆分、再水平拆分
-------------------------------------------------
www.onemy.cn

#12


楼主给的信息太少,分析个毛线,楼上各位都辛苦了,乱猜,乱给建议
1.首先检查数据库给出的连接是多少,这和连接池大小没有毛线关系,
2.然后你压力大到什么程度啊,不能量化吗,都做了什么主要操作啊,
3.你程序怎么部署的啊,每个程序用连接池了吗,连接池配置都是怎样的啊
4.到底有没有连接没有关闭,这个也是能检查出来啊,
一般情况下,不需要分库分表,都没分析,说个毛线

#13


LZ想的太简单了,阐述清楚,再讨论吧

#14


引用 12 楼 tangyanbo1110 的回复:
楼主给的信息太少,分析个毛线,楼上各位都辛苦了,乱猜,乱给建议
1.首先检查数据库给出的连接是多少,这和连接池大小没有毛线关系,
2.然后你压力大到什么程度啊,不能量化吗,都做了什么主要操作啊,
3.你程序怎么部署的啊,每个程序用连接池了吗,连接池配置都是怎样的啊
4.到底有没有连接没有关闭,这个也是能检查出来啊,
一般情况下,不需要分库分表,都没分析,说个毛线


略屌.... 负载均衡....听说过,都没弄过

#15


检查代码,确认有没有正常关闭。。

#16


增加最大连接数配置,同时确保程序代码中的connection用完后正确关闭。如果这些还不行,那就只能增加服务器,做负载均衡了。