Apache nifi 如何配置NiFi';DBCPConnectionPool不保持空闲连接打开?

Apache nifi 如何配置NiFi';DBCPConnectionPool不保持空闲连接打开?,apache-nifi,apache-commons-dbcp,Apache Nifi,Apache Commons Dbcp,开箱即用的NiFi(至少从1.8.0开始)似乎为每个启用的DBCPConnectionPool控制器服务保持打开一个数据库连接。我将多个DBCPConnectionPool控制器服务配置为使用不同的选项访问同一服务器,因此这很快就增加了到数据库服务器的有限连接数。我有一个每晚运行的预定工作流程。连接不需要处于活动状态,除非在短时间内处于活动状态 环顾四周,似乎没有与BasicDataSource参数相关联的控制器服务配置选项,如minIdle和maxIdle,我认为在我的特定用例中,这两个参数都

开箱即用的NiFi(至少从1.8.0开始)似乎为每个启用的DBCPConnectionPool控制器服务保持打开一个数据库连接。我将多个DBCPConnectionPool控制器服务配置为使用不同的选项访问同一服务器,因此这很快就增加了到数据库服务器的有限连接数。我有一个每晚运行的预定工作流程。连接不需要处于活动状态,除非在短时间内处于活动状态

环顾四周,似乎没有与
BasicDataSource
参数相关联的控制器服务配置选项,如
minIdle
maxIdle
,我认为在我的特定用例中,这两个参数都应该设置为0。或者,我认为我可以将
maxConnLifetimeMillis
设置为分钟范围内的某个值,并满足我的用例(连接不需要立即释放,但需要在合理的时间内释放)

是否有方法在不修改DBCPConnectionPool代码的情况下传递此选项?Commons DBCP会通过将这些选项设置为NiFi DBCPConnectionPool控制器服务配置上的动态属性来接受作为JDBC参数传递的选项吗?

NiFi从1.8.0开始,因为它使用的默认配置Commons DBCP 2.5.0不会清理连接。
timebetweenvictionrunsmillis
的Commons DBCP默认值为
-1
,这会导致空闲连接退出永远不会运行

NiFi 1.8.0无需调整这些计时


NiFi 1.9.0将。

我正在针对SQL Server 2016使用NiFi 1.8.0和jTDS 1.3.1。我寻找了控制连接活跃度的jTDS选项,但没有找到。2018年2月发布的nifi用户邮件列表帖子似乎表明,这些基本CDATA源参数不能通过在DBCPConnectionPool配置上设置为动态属性的JDBC属性进行修改。