Служба DBCPConnectionPool Не принимает значения, хранящиеся в атрибутах
Ниже приведены комбинации процессоров, которые я использую:
GetFile + SplitText + ExtractText + UpdateAttribute + ExecuteSQL + ConvertAvroToJson + PutFile
По сути, у меня есть файл свойств, который содержит 5 значений, разделенных запятыми, которые требуются службе контроллера DBCPConnectionPool для установления соединения с базой данных. Вот содержимое моего файла свойств:-
jdbc:mysql://localhost:3306/test,com.mysql.jdbc.Driver,C:\Program Files\MySQL\mysql-connector.jar,root,root
Теперь я извлекаю значения из этого файла свойств и сохраняю их в свойствах, созданных вручную. Я использую это регулярное выражение для сохранения этих значений в атрибутах, используя ExtractText.
ExtractedData: (.*)
Затем используйте процессор updateAttribute, чтобы вручную добавить 5 свойств и получить их значения из файла свойств, как показано ниже:
connectionURL : ${ExtractedData:getDelimitedField(1)}
driverClass : ${ExtractedData:getDelimitedField(2)}
driverLocation : ${ExtractedData:getDelimitedField(3)}
user : ${ExtractedData:getDelimitedField(4)}
password : ${ExtractedData:getDelimitedField(5)}
Итак, к настоящему времени атрибуты получили свои значения из файла свойств и, следовательно, следующие значения хранятся в них:
connectionURL : jdbc:mysql://localhost:3306/test
driverClass : com.mysql.jdbc.Driver
driverLocation : C:\Program Files\MySQL\mysql-connector.jar
user : root
password : root
Наконец, вот что я пытаюсь достичь. Я пытаюсь использовать эти 5 атрибутов в службе контроллера DBCPConnectionPool следующим образом:
Database Connection URL : ${connectionURL}
Database Driver Class : ${driverClass}
Database Driver Location(s) : ${driverLocation}
Database User : ${user}
Password : ${password}
Но я не могу установить соединение и получаю сообщение об ошибке "Не удается создать PoolableConnectionFactory". Кажется, что служба контроллера не может прочитать значение из атрибутов. Как я могу передать атрибут flowfile в службу контроллера?
1 ответ
'DBCPConnectionPool' Service Not accepting values stored in attributes
Это не проблема. Это фича)
Соединение с базой данных, установленное при запуске службы контроллера, а не при передаче файла потока процессору dbcp.