Nick Coleman created NIFI-5196:
----------------------------------

             Summary: AbstractJMSProcessor can leave connection hanging open
                 Key: NIFI-5196
                 URL: https://issues.apache.org/jira/browse/NIFI-5196
             Project: Apache NiFi
          Issue Type: Bug
          Components: Extensions
    Affects Versions: 1.6.0
            Reporter: Nick Coleman


ConsumeJMS and PublishJMS are based on AbstractJMSProcessor.  They can cause a 
connection to the MQ Server to be opened and not be closed until the NiFi 
server is rebooted.

This can create a problem for an MQ when the initial setup entered is wrong for 
an IBM MQ system that only allows one connection per user.  Subsequent 
connections are blocked as the first remains open.  Another potential problem 
even if the subsequent connection works is the original connection is still 
open and taking up resources.

A simple change to the AbstractJMSProcessor would be in the onTrigger() 
function:

 
{code:java}
@Override
public void onTrigger(ProcessContext context, ProcessSession session) throws 
ProcessException {
    T worker = workerPool.poll();
    if (worker == null) {
        worker = buildTargetResource(context);
    }

    boolean offered = false;
    try {
        rendezvousWithJms(context, session, worker);
        offered = workerPool.offer(worker);
    }
    finally {
        if (!offered) {
            worker.shutdown();
        }
    }
}{code}
 



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

Reply via email to