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