[ 
https://issues.apache.org/activemq/browse/CAMEL-2469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=57574#action_57574
 ] 

Aaron Riekenberg commented on CAMEL-2469:
-----------------------------------------

Looking into the code, it looks like by default 
org.apache.activemq.camel.component.ActiveMQConfiguration.usePooledConnection = 
true, so ActiveMQConfiguration.createConnectionFactory creates an 
org.apache.activemq.pool.PooledConnectionFactory.  PooledConnectionFactory 
needs to have stop() called on it to close underlying connections.  Nothing in 
camel is doing this when the context is closed.

One possible workaround is to manually create a PooledConnectionFactory and 
pass it to ActiveMQComponent.setConnectionFactory.  Then you have to call 
stop() yourself on the PooledConnectionFactory to close connections when the 
camel context is stopped.

This seems to be a bad default.  If by default camel is going to create a 
PooledConnectionFactory for the user, shouldn't it clean it up when the context 
is closed?

> Stopping camel context with ActiveMQComponent does not close connections to 
> ActiveMQ
> ------------------------------------------------------------------------------------
>
>                 Key: CAMEL-2469
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2469
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-activemq
>    Affects Versions: 2.1.0
>         Environment: Ubuntu Linux 9.10, Sun JDK 1.6.0_15, Camel 
> 2.1.0-psc-01-00RC1, ActiveMQ 5.3.0-psc-01-00RC1
>            Reporter: Aaron Riekenberg
>         Attachments: ActiveMQTest.java
>
>
> Stopping a camel context that uses an ActiveMQComponent does not appear to 
> close connections to the ActiveMQBroker.  See the attached test case as an 
> example.  It creates a camel context containing an ActiveMQ consumer and 
> producer, sends a message, then destroys the context.  The test case does 
> this in a loop so every 4 seconds the old camel context is destroyed and a 
> new one is created.  Every second the test outputs the number of connections 
> to the ActiveMQ broker.  This number continually grows over time.  After 
> running for a few minutes I see output like this:
> 10:17:28,885 INFO  ActiveMQTest - num connections = 159
> 10:17:29,885 INFO  ActiveMQTest - num connections = 159
> 10:17:30,574 INFO  ActiveMQTest - creating context and sending message
> 10:17:30,574 INFO  DefaultCamelContext - Apache Camel 2.1.0-psc-01-00RC1 
> (CamelContext:camel-160) is starting
> 10:17:30,574 INFO  DefaultCamelContext - JMX enabled. Using 
> DefaultManagedLifecycleStrategy.
> 10:17:30,744 INFO  DefaultCamelContext - Apache Camel 2.1.0-psc-01-00RC1 
> (CamelContext:camel-160) started
> 10:17:30,753 INFO  ActiveMQTest - consume message = message
> 10:17:30,885 INFO  ActiveMQTest - num connections = 160
> 10:17:31,885 INFO  ActiveMQTest - num connections = 160
> 10:17:32,747 INFO  ActiveMQTest - destroying context
> 10:17:32,747 INFO  DefaultCamelContext - Apache Camel 2.1.0-psc-01-00RC1 
> (CamelContext:camel-160) is stopping
> 10:17:32,755 INFO  DefaultInflightRepository - Shutting down with no inflight 
> exchanges.
> 10:17:32,755 INFO  DefaultCamelContext - Apache Camel 2.1.0-psc-01-00RC1 
> (CamelContext:camel-160) stopped
> 10:17:32,886 INFO  ActiveMQTest - num connections = 160
> 10:17:33,885 INFO  ActiveMQTest - num connections = 160
> Also if I do "netstat -an | grep 61616" I see the number of connections to 
> the broker on TCP port 61616 is continually growing.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to