Hi

A thread pool profile is just a template for sharing the same settings, not
the same pool instance.
Instead use <threadPool> to create a pool instance and share this.

See more in the docs
https://camel.apache.org/manual/threading-model.html

On Mon, Aug 28, 2023 at 9:53 AM Modanese, Riccardo
<riccardo.modan...@eurotech.com.invalid> wrote:

> Hello to everyone,
>      I’m working to place a cap to the threads used by my Camel routes.
>
> I have several routes (the number can vary time to time) and I created a
> thread pool profile like this one (Camel 3.x with SpringBoot 2.5.x)
> <camel:threadPoolProfile
>     id="myRoutePoolProfile"
>     poolSize="…"
>     maxPoolSize="…"
>     maxQueueSize="…"
>     rejectedPolicy="…"/>
>
> My routes have a recipient list and an error handler (no multicast).
> I set the same thread pool profile to each error handler and recipient
> list:
> executorServiceRef="myRoutePoolProfile"
>
> Looking at the thread instantiated by the JVM (since I noticed a huge
> quantity of memory allocated increasing which grows continuously for a
> while) I have seen recipient list allocating a new thread pool with the
> configuration I provided (myRoutePoolProfile) for each route instead of
> sharing it for all the routes.
>
> My needing is to limit the threads used by all the routes and Camel engine
> itself by setting a global limit.
> In this way I can be confident to have a predictable amount of memory used
> by the JVM (once setting heap, code caching and so on)
>
> Do you have any idea or documentation to point me to?
>
> Thank for your support.
>
> Regards,
> Riccardo Modanese
>


-- 
Claus Ibsen
-----------------
@davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to