По умолчанию NiFi (по крайней мере, начиная с версии 1.8.0) поддерживает одно соединение с базой данных для каждой включенной службы контроллера DBCPConnectionPool. У меня есть несколько служб контроллера DBCPConnectionPool, настроенных для доступа к одному и тому же серверу с различными параметрами, поэтому это быстро приводит к ограниченному количеству соединений с моим сервером базы данных. У меня есть запланированный рабочий процесс, который запускается ~ ночью. Соединения не должны быть активными, за исключением случаев, когда они активно используются в течение короткого промежутка времени.
При просмотре документации DBCPConnectionPool выясняется, что существуют не параметры конфигурации службы контроллера, связанные с Apache Commons-DBCP BasicDataSource
, такие как minIdle
и maxIdle
, который, я думаю, должен быть установлен равным 0 в моем конкретном случае использования. В качестве альтернативы, я думаю, что я мог бы установить maxConnLifetimeMillis
на что-то даже в диапазоне минут и удовлетворить свой вариант использования (соединение не должно быть разорвано немедленно , но в течение разумного периода времени).
Есть ли способ передать эти параметры без изменения кода DBCPConnectionPool? Примет ли Commons-DBCP эти параметры, переданные в качестве параметров JDBC, путем установки их в качестве динамических свойств в конфигурации службы контроллера NiFi DBCPConnectionPool?