[ https://issues.apache.org/jira/browse/CAMEL-21813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17931272#comment-17931272 ]
Claus Ibsen commented on CAMEL-21813: ------------------------------------- See this FAQ https://camel.apache.org/manual/faq/why-does-camel-use-too-many-threads-with-producertemplate.html > Threads from producer template when using InOut with ActiveMQ are not being > closed > ---------------------------------------------------------------------------------- > > Key: CAMEL-21813 > URL: https://issues.apache.org/jira/browse/CAMEL-21813 > Project: Camel > Issue Type: Bug > Components: came-jms > Affects Versions: 4.6.0, 4.7.0, 4.10.0 > Environment: ActiveMQ 5.18.3 > Java 17 > Reporter: David Benes > Priority: Major > Attachments: camel-left-threads.zip > > > When using ProducerTemplate and sending data to ActiveMQ with InOut exchange > pattern it opens a 2 threads that are still there even when response is > returned and producer template is closed. > Thread names are: > # TemporaryQueueReplyManager > # JmsReplyManagerTimeoutChecker > If you are using this pattern to handle some requests over the time number of > threads accumulates up to the number of allowed threds in the pool (if using > a pool, defaults to ~1000 for ActiveMQ) and no more messages are being sent. > Application has to be restarted. > Example that replicates the problem is attached. Requirements to run the > example is having ActiveMQ running on localhost. Example is a simple Maven > project. It contains single file that includes `main` method that replicates > the problem. > This example sends messages into ActiveMQ queue in InOut exchange pattern. > And another Processor is replying with slight delay. > When executed in debug mode, you will see that number of threads is only > increasing. Also it prints to standard out number of threds at the beginning > and in the end. At the end there is at least 2 times more threads still > running as the number of messages that were send. > It behaves the same when using connection pool or not. Verified that it > behaves the same with several versions of Apache Camel. > The only way found how to let those threads finish is sending the message in > InOnly exchange pattern. But that is not usable as a workaround as we would > not get necessary response. > Is there something that we are doing wrong when closing the producer? As it > is documented that you should close the producer template and we are doing > exactly that, it looks like a bug. -- This message was sent by Atlassian Jira (v8.20.10#820010)