【发布时间】:2020-11-14 12:23:03
【问题描述】:
我注意到我们的 NiFi 1.7 集群和 Oracle 19c 数据库之间的 NiFi DBCP 连接池中有一些奇怪的行为。当 NiFi 集群负载不足时,它会停止重用池中的数据库连接。相反,它使用一次连接,关闭它,然后打开另一个。 NiFi 日志文件或数据库中没有错误 - 没有超时、没有断开的连接或返回错误。
控制器服务中的“最大等待时间”设置为“500 毫秒”(默认),“最大总连接数”设置为“200”。我们从来没有得到超过 30 个连接,并且我们的日志中没有超时错误。所有数据库事务仍在完成,但由于额外的登录开销,它们花费的时间比应有的要长得多。数据库审计跟踪显示干净的注销,因此这似乎是 NiFi 故意在做的事情。
我已经搜索了这个论坛和其他几个论坛,除了可能是一个错误之外,没有找到任何其他这种行为的例子或任何导致它的线索。有没有其他人看到这种行为或有任何想法如何纠正它或进一步排除故障?是否有我们可以调整的 NiFi 或 DBCP 参数会有所帮助?我无法识别一个看起来很明显的。
很遗憾,目前无法升级我们的 NiFi...
我会发布日志等,但那里确实没有什么可看...
【问题讨论】:
-
如果您有 v1.7 并且无法升级 nifi - 没有简单的方法可以更改其他 DBCP 参数,然后您会在当前版本中看到。 nifi中使用的BasicDataSource的问题有
max idle connections = 8。也许您可以重新编译 dbcp 组件以公开其他 BasicDataSource 属性。
标签: oracle apache-nifi connection-pooling apache-commons-dbcp