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

2018-07-13 Thread Nick Coleman (JIRA)


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

Nick Coleman commented on NIFI-5196:


[~mosermw] - this would satisfy the original issue of needing to reboot the 
server knowing that the admin has to stop and restart the processor.  It's also 
a cleaner code change

> 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)


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

2018-05-20 Thread Nick Coleman (JIRA)

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

Nick Coleman commented on NIFI-5196:


The @OnStopped will only be called for workers that are actually in the 
workerPool.  The case I'm describing is for when anything goes wrong inside 
rendezvousWithJms(). 

If rendezvousWithJms() throws an exception, workerPool.offer() will never be 
called and the shutdown of the worker will never happen. I'm proposing a 
finally block to ensure the worker is shutdown if not added to the workerPool

> 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)


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

2018-05-15 Thread Nick Coleman (JIRA)
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)