From Martin Weiler :
I did a quick test comparing the original code they used (based on the
SOA-5.3.0 jBPM5 integration layer) with the new one (based on the
SOA-5.3.1 jBPM5 integration layer).
The main difference between the two codebases is the session utilization
pattern. 5.3.0 uses a session-per-process-instance pattern, 5.3.1 uses a
I did a test with a process that takes 4 sec to execute, using a JMS
listener with 20 threads of executions.
With the 5.3.0. code, it takes 90 sec to execute 380 process instances.
With the 5.3.1 code, it takes 27 min to execute 380 process instances.
The reason for this huge performance difference is simple: the 5.3.1
uses only one session, and the this session is synchronized (thus
single-threaded). So the benefit of using multiple threads of execution
in the ESB is lost.