我已经将PutSQL处理器的并发任务数增加到'10‘。
此时,它显示以下错误,但没有数据丢失。
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:
如果我删除了并发任务,则它可以正常工作,而不会出现这些异常
在谷歌搜索这个例外时,我在以下链接中找到了答案
但是我不知道如何在NiFi putSQL中避免这个问题。
有人能帮我解决这个问题吗?
发布于 2017-03-22 21:01:39
当池管理器无法生成到等待的请求者的可行连接,并且maxWait已过,从而触发超时时,就会发生此异常。有几种原因,但它们通常分为两大类:
nifi中的DBCPConnectionPool控制器服务默认最大连接数为8,最长等待时间为500毫秒。当PutSQL处理器占用DBCP池中的8个连接时,当它请求第9个连接或超过最大连接限制时,它将抛出“无法获取连接”异常。
您可以尝试两种方法来避免此异常:
service configuration.
中的“最大总连接数”限制
请找到下面的截图,您需要做更改。
它可能会解决你的问题。
发布于 2018-06-06 20:52:38
如果某些连接从未关闭,因此它们在池中不再可用,则会发生此异常。因此,越来越多的连接保持开放,直到达到最大值。
确保所有线程都在关闭所使用的连接。
https://stackoverflow.com/questions/42942759
复制相似问题