AnsweredAssumed Answered

JobExecutor - Thread management

Question asked by slash117 on Sep 4, 2013
Latest reply on Sep 16, 2013 by slash117
hi everyone,
I'm having the following problem(due to the JobExecutor of Activiti) when launching load tests on my application :
the java process's memory increses constantly until it saturates (then i get an OutOfMemory with the java process > 4 Go and the Java process is killed by the OS).
in the JVM everything seems to be ok, the Garbage collector is working well and no saturation is seen in the HEAP of the JVM.
So i think the problem is that Activiti doesn't re-use its thread pool. That means every time a task is launched with the JobExecutor a new thread is created (pool1- thread XXX).
with JProfiler i see that these threads are killed once the task assigned to each thread is finished, but it seems that these threads and their memory and not well managed on an OS level causing the crash of the Java process.

1. Wouldn't be better if the size of the threadPool doesn't change in the JobExecutor. This way we can be sure of the re-use of the threads (corePoolSise = MaxPoolSize = 10 for example)
2. Is it possible to override the DefaultJobExecutor class and develop our own implementation of the JobExecutor ?

Plateform : Activiti 5.12.1, JDK 1.6,  Jonas 5.2.2, Spring3.2.3

Reagrds,
Gilbert E.H.

Outcomes