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

ASF subversion and git services commented on NIFI-5196:
-------------------------------------------------------

Commit 4e09a03f86b50a8b5b26d00542aabbd48bbc4b9d in nifi's branch 
refs/heads/master from [~boardm26]
[ https://git-wip-us.apache.org/repos/asf?p=nifi.git;h=4e09a03 ]

NIFI-5196 Fixed JMS connection leak when uncaught exceptions happen

Signed-off-by: Pierre Villard <[email protected]>

This closes #2904.


> 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
>             Fix For: 1.8.0
>
>
> 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