Matt Burgess created NIFI-5519:
----------------------------------

             Summary: Allow ListDatabaseTables to accept incoming connections
                 Key: NIFI-5519
                 URL: https://issues.apache.org/jira/browse/NIFI-5519
             Project: Apache NiFi
          Issue Type: Wish
            Reporter: Matt Burgess


As of [NIFI-5229|https://issues.apache.org/jira/browse/NIFI-5229], 
DBCPConnectionPoolLookup allows the dynamic selection of a DBCPConnectionPool 
by name. This allows processors who are to perform the same work on multiple 
databases to be able to do so by providing individual flow files upstream with 
the database.name attribute set.

However ListDatabaseTables does not accept incoming connections, so you 
currently need 1 DBCPConnectionPool per database, plus 1 ListDatabaseTables per 
database, each using a corresponding DBCPConnectionPool. It would be nice if 
ListDatabaseTables could accept incoming connection(s), if only to provide 
attributes for selecting the DBCPConnectionPool.

I propose the behavior be like other processors that can generate data with or 
without an incoming connection (such as GenerateTableFetch, see 
[NIFI-2881|https://issues.apache.org/jira/browse/NIFI-2881] for details). In 
general that means if there is an incoming non-loop connection, it becomes more 
"event-driven" in the sense that it will not execute if there is no FlowFile on 
which to work. If there is no incoming connection, then it would run as it 
always has, on its Run Schedule and with State Management, so as not to re-list 
the same tables every time it executes. 

However with an incoming connection and an available FlowFile, the behavior 
could be that all tables for that database are listed, meaning that processor 
state would not be updated nor queried, making it fully "event-driven". If the 
tables for a database are not to be re-listed, the onus would be on the 
upstream flow to not send a flow file for that database. This is not a 
requirement, just a suggestion; it could be more flexible by honoring processor 
state if the Refresh Interval is non-zero, but I think that adds too much 
complexity for the user, for little payoff.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to