Connection pool exhausted - try increasing ‘maxPoolSize‘ and/or ‘borrowConnectionTimeout‘ on the Dat

一、错误详情

调接口时反应及慢,迟迟不响应,之后提示下面的报错

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.atomikos.jdbc.AtomikosSQLException: Connection pool exhausted - try increasing 'maxPoolSize' and/or 'borrowConnectionTimeout' on the DataSourceBean.

二、错误原因

使用Atomikos这个插件配置参数AtomikosDataSourceBean时忘记配置MinPoolSize,MaxPoolSize,BorrowConnectionTimeout这三个参数,导致连接池资源耗尽。

参数设置前代码:

        AtomikosDataSourceBean ds = new AtomikosDataSourceBean();
        ds.setXaProperties(properties);
        ds.setUniqueResourceName("masterXADataSource");
        ds.setXaDataSourceClassName("oracle.jdbc.xa.client.OracleXADataSource");
    

三、解决方法

设置对应参数即可,参数设置后代码:

        AtomikosDataSourceBean ds = new AtomikosDataSourceBean();
        ds.setXaProperties(properties);
        ds.setUniqueResourceName("masterXADataSource");
        ds.setXaDataSourceClassName("oracle.jdbc.xa.client.OracleXADataSource");
        ds.setMaxPoolSize(100);
        ds.setMinPoolSize(10);
        ds.setBorrowConnectionTimeout(60);

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您好!对于使用 Hibernate 和 Atomikos 的连接池配置,如果仍然遇到 "Connection pool exhausted" 的错误,有几个可能的原因和解决方法: 1. 配置错误:请确保您正确地配置了连接池的最大大小(maxPoolSize)。您可以检查 Hibernate 和 Atomikos 的配置文件,确保将其设置为适当的值。例如,如果您希望最大连接数为 10,可以将 maxPoolSize 设置为 10。 2. 连接泄漏:连接泄漏是指在使用完连接后未正确关闭或释放连接,导致连接无法再次使用。请确保您在使用完连接后始终正确地关闭连接。可以使用 try-with-resources 或手动调用 close() 方法来确保连接被正确关闭。 3. 连接占用时间过长:如果某些操作需要较长时间才能完成,可能会导致连接被占用并且无法释放给其他请求。请检查您的代码逻辑,确保在不需要连接时及时释放它们。 4. 连接池配置不足:除了 maxPoolSize 外,还有其他一些连接池配置参数可能需要调整,例如 minPoolSize(最小连接数)、maxIdleTime(最大空闲时间)等。根据您的具体需求,可能需要调整这些参数以适应并发请求。 5. 资源限制:检查系统资源限制,例如数据库服务器的最大连接数和线程数,确保它们与连接池配置相匹配。如果数据库服务器的最大连接数小于连接池的最大连接数,可能会导致连接池耗尽。 请根据您的具体情况逐一排查以上可能的问题,并进行相应的调整和优化。希望能帮到您!如果还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小海海不怕困难

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值