[
https://issues.apache.org/jira/browse/NIFI-322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14384253#comment-14384253
]
Mark Payne commented on NIFI-322:
---------------------------------
Toivo,
OK so the patch definitely applies now! Thanks for all of the pain that you
went through there!
I pulled it into the build and played with it a bit. Of course, we don't have
any processor written yet to use it that I know of, so it's hard to test, but
just given how i'm able to configure it I would look into a few things:
* The service provides the ability to borrow a connection but not the ability
to return the connection - that will probably be important! :)
* One of the unit test requires MariaDB to be running and available on
localhost; should probably @Ignore that unit test with the indication that it
is used for local testing only.
* Was a bit confused by the property name "Database" -- should call it
"Database Type" or "Database Vendor" perhaps?
* I would not set a default port. The default value of 1 is pretty much
guaranteed to need to be changed, so I wouldn't even supply a default.
* For the "Database Driver Class Name", I would make this property optional and
only require it if they use "Other DB" because it should be known for all other
choices. You can override the customValidate method to ensure that the value is
populated if the database type is set to "Other DB".
* For the drivers that we offer, we need to ensure that all of them are
license-compatible with Apache. For MariaDB, for instance, your docs say that
it is free under GNU GPL. We cannot support anything that has a GPL license.
See http://www.apache.org/legal/resolved.html for more information about which
licenses are and are not OK for Apache.
* The root NOTICE file needs to be updated to include anything in the NOTICE
files of the dependent jar files. I'm happy to assist with this; the guide is
available at http://nifi.incubator.apache.org/development/licensing-guide.html.
This part is unfortunately not fun. For any library that we bring in (and any
transitive library that it brings in, and so on), we need to know exactly what
license it is and include anything from that library's NOTICE file in our
notice file.
* Max Total Connections appears to be a Sensitive property. I'm guessing this
is a copy/paste error.
* In order to integrate the service into the build, a few poms need to be
updated:
** Root NiFi pom should add the module to its dependencyManagement;
** nifi-assembly/pom.xml should pull in the nifi-dbcp-service-nar;
** nifi-nar-bundles/nifi-standard-services/pom.xml should pull in the
nifi-dbcp-service-bundle - it currently pulls in the api but not the actual
implementation module.
Sorry, it looks like i provided a ton of feedback, but most of these are super
minor tweaks. Overall, I think it's a great first version. I'm sure we'll find
out more once we get a chance to develop the processors to interact with JDBC.
:)
I know this service hasn't been at all trivial, because of needing to support
arbitrary JAR files, etc. but you've stuck with it and done a great job! Just
wanted to say thanks for all the effort you're putting in to help make NiFi
awesome!
> New Database Connection Pooling Controller Service
> --------------------------------------------------
>
> Key: NIFI-322
> URL: https://issues.apache.org/jira/browse/NIFI-322
> Project: Apache NiFi
> Issue Type: New Feature
> Components: Extensions
> Reporter: Toivo Adams
> Assignee: Mark Payne
> Priority: Minor
> Labels: controller
> Attachments: DBCPServiceApacheDBCP14.java, DBCPServiceTest.java,
> DatabaseSystemDescriptor.java, DatabaseSystems.java,
> NIFI-322_01mar2015.patch, NIFI-322_03mar2015.patch, NIFI-322_08mar2015.patch,
> NIFI-322_14mar2015.patch, NIFI-322_22mar2015.patch, NIFI-322_24mar2015.patch,
> NIFI-322_26mar2015.patch, TestDatabaseSystems.java, TestProcessor.java
>
>
> Often DataFlows contain many processors which deal with database - select,
> update or delete different data in different tables.
> Yet database is same and connection pooling helps to speed up connecting to
> database (open connection is fairly expensive). Also configuration must be
> done only in one place.
> Database Connection Pooling Controller Service helps to solve this in
> consistent way.
> related
> https://issues.apache.org/jira/browse/NIFI-293 : Add a JDBC Processor for
> executing arbitrary SQL queries.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)