Thread Pools

Thread pools serve to limit the number of threads for EMS messages to a level that the system can handle comfortably.

Depending on the system work load, sometimes too many threads are running and using excessive CPU and memory. However, most of the time, the number of these threads running in parallel is quite low. Therefore, the default values used by the system should prove to be satisfactory.

If you are experiencing high CPU usage you should monitor the JVM to see which threads are consuming the most CPU, and determine which (if any) of the thread pool sizes you need to adjust. You can determine how many threads are running within the BPM node's JVM by using JConsole/JVisualVM, taking a thread dump with jstack, or through TIBCO ActiveMatrix Administrator. For more information, see JVM Monitoring.

The following thread pools are available:

  • Process Engine - These are the main process instance processing threads.
  • User Application - These threads process requests sent, via asynchronous EMS messages, to any customer application from BPM components other than Process Engine.