首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法获取连接,池错误超时正在等待PutSQL中的空闲对象?

无法获取连接,池错误超时正在等待PutSQL中的空闲对象?
EN

Stack Overflow用户
提问于 2017-03-22 12:29:24
回答 2查看 28K关注 0票数 1

我已经将PutSQL处理器的并发任务数增加到'10‘。

此时,它显示以下错误,但没有数据丢失。

代码语言:javascript
运行
复制
failed to process due to org.apache.nifi.processor.exception.ProcessException: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object; rolling back session: 

如果我删除了并发任务,则它可以正常工作,而不会出现这些异常

在谷歌搜索这个例外时,我在以下链接中找到了答案

I am getting Cannot get a connection, pool error Timeout waiting for idle object, When I try to create more than 250 threads in my web application

但是我不知道如何在NiFi putSQL中避免这个问题。

有人能帮我解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-22 21:01:39

当池管理器无法生成到等待的请求者的可行连接,并且maxWait已过,从而触发超时时,就会发生此异常。有几种原因,但它们通常分为两大类:

  • 数据库已关闭或无法访问。

  • 连接池(设置为最大活动100 )连接不足。

nifi中的DBCPConnectionPool控制器服务默认最大连接数为8,最长等待时间为500毫秒。当PutSQL处理器占用DBCP池中的8个连接时,当它请求第9个连接或超过最大连接限制时,它将抛出“无法获取连接”异常。

您可以尝试两种方法来避免此异常:

  1. 你可以在DBCPConnectionPool控制器中增加“最大等待时间”

service configuration.

  • You可以增加DBCPConnectionPool控制器服务configuration.

中的“最大总连接数”限制

请找到下面的截图,您需要做更改。

它可能会解决你的问题。

票数 14
EN

Stack Overflow用户

发布于 2018-06-06 20:52:38

如果某些连接从未关闭,因此它们在池中不再可用,则会发生此异常。因此,越来越多的连接保持开放,直到达到最大值。

确保所有线程都在关闭所使用的连接。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42942759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档