Since we're on a major migration process of this website, some component documents here are out of sync right now. In the meantime you may want to look at the asciidoc in the repository:

Why does Camel use too many threads with ProducerTemplate?

A common reason is creating a new ProducerTemplate inside a Processor or bean method invocation.

You are not meant to create a ProducerTemplate for each message invocation; you are meant to create a single instance on startup and keep it around.

Also when you have finished using the ProducerTemplate you should call the stop() method to close down all the resources it has been using.

Its better to either explicitly create one on startup or get your IoC container (Spring or Guice) to inject it into your Processor or bean then it can take care of creating it and destroying all the resources when you have finished with it.

For instance using Spring you can define a template and have Spring handle the lifecycle of it:

    <camelContext xmlns="">
        <template id="template"/>

Then you can refer to the ProducerTemplate with the id template

© 2004-2015 The Apache Software Foundation.
Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
Graphic Design By Hiram