IBM BPM, V8.0.1, All platforms > Tuning > Advanced tuning
Tuning for maximum concurrency
For most high-volume deployments on server-class hardware, many operations take place simultaneously. Tuning for maximum concurrency ensures that the server accepts enough load to saturate its processors.
One sign of an inadequately tuned configuration is when additional load does not result in additional processor usage, while the processors are not fully used. To optimize these operations for maximum concurrency, the general guideline is to follow the execution flow and remove bottlenecks one at a time.
Higher concurrent processing means higher resource requirements (memory and number of threads) on the server. It needs to be balanced with other tuning objectives, such as the handling of large objects, handling large numbers of users, and providing good response time.
- Tune edge components for concurrency
The first step is to ensure that Business Objects (BOs) are handled concurrently at the edge components of IBM BPM. If the input BOs come from the adapter, ensure that the adapter is tuned for concurrent delivery of input messages.- Tune MDB ActivationSpec properties
Two custom properties in the MDB ActivationSpec have considerable performance implications: maxConcurrency and maxBatchSize.- Tune intermediate components for concurrency
If the input BO is handled by a single thread from end to end, the tuning for the edge components is normally adequate. In many situations, however, there are multiple thread switches during the end-to-end execution path. It is important to tune the system to ensure adequate concurrency for each asynchronous segment of the execution path.
- Configure JMS and JMS queue connection factories
Multiple concurrently running threads can cause a bottleneck on resources such as JMS and database connection pools if these resources are not tuned properly. The maximum connections pool size specifies the maximum number of physical connections that can be created in this pool, to the backend resource; for example a DB2 for z/OS database.- Configure DataSource options
The maximum connections property of DataSources must be large enough to allow concurrent access to the databases from all threads. Typically, there are a number of DataSources configured in IBM BPM servers; for example, BPEDB data source, WPSDB data source, and Message Engine DB data sources.- Set DataSource prepared statement cache size
The Business Process Choreographer container uses prepared statements extensively. The statement cache sizes must be large enough to avoid repeatedly preparing statements for accessing the databases.