camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Maurice Betzel (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CAMEL-7585) Cyclic behaviour in shutdown of temporary queues used in a proxy
Date Wed, 09 Jul 2014 07:36:04 GMT

     [ https://issues.apache.org/jira/browse/CAMEL-7585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Maurice Betzel updated CAMEL-7585:
----------------------------------

    Description: 
In bundle shutdown the DMLC for the temporairy queue does not get discarded. When stop() is
called on the request reply JmsEndpoint the runningMessageListeners.get() count returns 1
preventing to call stop on ServiceSupport. Then inside the DMLC in refreshConnectionUntilSuccessful()
isRunning() gets called resulting in a JmsEndpoint isRunning() returning true from ServiceSupport.
As a quick and dirty solution one can do this on bundle shutdown:

JmsEndpoint jmsEndpoint = camelContext.getEndpoint("amq:queue:Endpoint", JmsEndpoint.class);
jmsEndpoint.onListenerContainerStopped(null);

This will decrement the runningMessageListeners (which should always be one for temp queues
because a singlethreadexecuter is used) to zero allowing stop() to propagate to ServiceSupport.


  was:
On bundle shutdown the DMLC for the temporairy queue does not get descarded. When stop() is
called on the request reply JmsEndpoint the runningMessageListeners.get() count returns 1
preventing to call stop on ServiceSupport. Then inside the DMLC in refreshConnectionUntilSuccessful()
isRunning() gets called resulting in a JmsEndpoint isRunning() returning true from ServiceSupport.
As a quick and dirty solution one can do this on bundle shutdown:
JmsEndpoint jmsEndpoint = camelContext.getEndpoint("amq:queue:Endpoint", JmsEndpoint.class);
jmsEndpoint.onListenerContainerStopped(null);

This will decrement the runningMessageListeners (which should always be on for temp queues
because a singlethreadexecuter is used) to zero allowing stop() to propagate to ServiceSupport.



> Cyclic behaviour in shutdown of temporary queues used in a proxy
> ----------------------------------------------------------------
>
>                 Key: CAMEL-7585
>                 URL: https://issues.apache.org/jira/browse/CAMEL-7585
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-jms
>    Affects Versions: 2.13.0, 2.13.2
>         Environment: Windows 7 64
> Karaf 2.3.4
> ActiveMQ 5.9.0 / 5.10.0
> Spring 3.2.4
>            Reporter: Maurice Betzel
>            Priority: Minor
>
> In bundle shutdown the DMLC for the temporairy queue does not get discarded. When stop()
is called on the request reply JmsEndpoint the runningMessageListeners.get() count returns
1 preventing to call stop on ServiceSupport. Then inside the DMLC in refreshConnectionUntilSuccessful()
isRunning() gets called resulting in a JmsEndpoint isRunning() returning true from ServiceSupport.
> As a quick and dirty solution one can do this on bundle shutdown:
> JmsEndpoint jmsEndpoint = camelContext.getEndpoint("amq:queue:Endpoint", JmsEndpoint.class);
> jmsEndpoint.onListenerContainerStopped(null);
> This will decrement the runningMessageListeners (which should always be one for temp
queues because a singlethreadexecuter is used) to zero allowing stop() to propagate to ServiceSupport.




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message