Служба 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.

Другие вопросы по тегам