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

Reply via email to