Tuning business processes

Use this task to improve the performance of business processes.

Before you begin

After successfully running business processes, you can perform this task to improve performance.

Steps for this task

  1. Define how to measure the baseline performance, and which measurements you want to optimize.

    For example, for some business applications, it is preferable to reduce the response time for end-users under peak-load conditions. For other applications, the rate that the system can process transactions might be more important than the actual duration of each transaction.

  2. Make baseline measurements.

    Make the baseline measurements under conditions of load, time-of-day, and day-of-week that are appropriate for tuning your application. Normally, the most important baseline measurements are the throughput and response times. Throughput values are measured after a specific bottleneck capacity is reached, for example 100% CPU load, disk I/O at maximum, or network I/O at 100%. Reliable response time values are best measured for a single process instance during low server utilization.

  3. Tune the processes.

    Depending on whether your application uses long-running processes or microflows, perform one of the following steps:

    • To tune long-running processes, perform the steps that are described in Tuning long-running processes. These processes tend to run for a long time, but can be interrupted by events or human interaction. Their performance therefore depends on the performance of the Business Process Choreographer database and the messaging service.
    • To tune microflows, perform the steps that are described in Tuning microflows. These processes tend to run for only a short time. They use the database only for audit logging, if enabled, and to retrieve the template information. They do not use messaging support for storing persistent data. These processes involve no human interaction.
  4. Tune the application.

    Many different options are available to achieve the same functionality in an application, and some of them are more efficient than others. Identify and review any performance-critical code. Maximize asynchronicity, and ensure that actions are not unnecessarily serialized. Try to minimize the amount and complexity of data submitted to the process, as serialization/deserialization costs are directly related to the size and complexity of data objects used in the process. Consider shortening timeouts that do not result in error conditions. Identify opportunities to cache the results of database queries.

  5. Review the current configuration for performance bottlenecks that can be eliminated.
    Possibilities to consider include:
    • Installing more processors, more memory, and faster disks.
    • Storing the database logs on different physical disks from the data, and distributing the data on several disks.
    • Using DB2®, rather than Cloudscape™, for optimal performance.
  6. Repeat the benchmark measurements under similar load conditions to those of the baseline measurements.

    Keep a permanent record of the application performance measurements to objectively measure any future changes in performance.

Result

The business processes are configured to run measurably faster.

(c) Copyright IBM Corporation 2005, 2006.
This information center is powered by Eclipse technology (http://www.eclipse.org)