You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Aaron Riekenberg (JIRA)" <ji...@apache.org> on 2010/02/14 19:07:33 UTC

[jira] Commented: (CAMEL-2469) Stopping camel context with ActiveMQComponent does not close connections to ActiveMQ

    [ 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.