You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Sivaprasanna Sethuraman (JIRA)" <ji...@apache.org> on 2018/05/20 05:28:00 UTC

[jira] [Commented] (NIFI-5196) AbstractJMSProcessor can leave connection hanging open

    [ https://issues.apache.org/jira/browse/NIFI-5196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16481837#comment-16481837 ] 

Sivaprasanna Sethuraman commented on NIFI-5196:
-----------------------------------------------

[~mystafer]

It has a @OnStopped annotated method 'close' which takes care of shutting down the the worker when the processor is stopped. Are you sure it's not working?

> 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
>            Assignee: Sivaprasanna Sethuraman
>            Priority: Major
>              Labels: JMS
>
> 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)