IBM Support

Improve performance by collapsing system lane activities in IBM Business Process Manager (BPM) and WebSphere Lombardi Edition

Troubleshooting


Problem

Your business process definition (BPD) does a lot of back-end work and takes a long time to complete. You are having trouble getting your application to scale during load testing. Collapsing system lane activities on a BPD is a best practice and will help the application scale.

Resolving The Problem

What changes do you need to help it perform?

Scalability and performance can be improved by reducing or eliminating sequential system lane activities, which is a best practice.

The product has two engines which process BPMN instances, the business process definition (BPD) engine and service engine. The BPD engine can only move one token on a business process definition at a time. Moving tokens is handled by the event manager. The service engine does not have this limitation. The business process definition layer is intended to move tokens from one human task to the next. Yes, system level activities might, and often do, exist on the business process definition. However, multiple sequential activities can greatly reduce the speed of transactions at the business process definition level. This scenario is also explained in the Webcast replay: WebSphere Lombardi Edition - Developing for Performance and Scalability.

The most common design problem is with sequential system lane activities. This common practice is used because it reads well and segments the work. The problem is that it causes the system to thrash between the business process definition and service engine and to spawn unnecessary tasks. A better method is to collapse those activities into one service and have the rolled up steps as sub-services. For instance, you might have a system lane with the following three service-based activities:

  • Retrieve data from a database
  • Retrieve data from a web service
  • Initialize data


Consider having one service called Get initial data and that service has the following three subservices:
    1. Retrieve data from a database
    2. Retrieve data from a web service
    3. Initialize data

Sequential System lanes cause the following issues:
  • Thrashing might occur between the service and business process definition engines. Also, see more information in the Webcast replay: WebSphere Lombardi Edition - Developing for Performance and Scalability.
  • Event Manager lag might occur due to the large number of activities that are generated by the business process definition instances. The time between activities is related to the <heartbeat-period> in the event manager configuration.
  • Extensive extra work occurs for the Event Manager.
  • High load occurs on the LSW_TASK_EXECUTION and LSW_BPD_INSTANCE_DATA tables. These tables hold the execution context for the service and business process definition engines.
  • Higher database activity occurs.
  • A larger database size is needed due to unnecessary LSW_TASK entries. Consider using the built-in LSW_BPD_INSTANCE_DELETE procedure to clean up completed instances.
  • It is harder to debug than services. You are writing a step-by-step system-to-system activity. Make it easier on yourself for debugging and execution purposes.

[{"Product":{"code":"SSFPRP","label":"WebSphere Lombardi Edition"},"Business Unit":{"code":"BU004","label":"Hybrid Cloud"},"Component":"BPD Execution","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"7.2;7.1;7.0.1;6.2.2;6.2.1;6.2;6.1;6.0.1","Edition":""},{"Product":{"code":"SSFTDH","label":"IBM Business Process Manager Standard"},"Business Unit":{"code":"BU004","label":"Hybrid Cloud"},"Component":"Performance","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"","label":"Linux zSeries"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"8.0.1;8.0;7.5.1.1;7.5.1;7.5.0.1;7.5","Edition":""},{"Product":{"code":"SSFTN5","label":"IBM Business Process Manager Advanced"},"Business Unit":{"code":"BU004","label":"Hybrid Cloud"},"Component":"Performance","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"","label":"Linux zSeries"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"},{"code":"PF035","label":"z\/OS"}],"Version":"8.0.1;8.0;7.5.1.1;7.5.1;7.5.0.1;7.5","Edition":""},{"Product":{"code":"SSFTBX","label":"IBM Business Process Manager Express"},"Business Unit":{"code":"BU004","label":"Hybrid Cloud"},"Component":"Performance","Platform":[{"code":"PF016","label":"Linux"},{"code":"","label":"Linux zSeries"},{"code":"PF033","label":"Windows"}],"Version":"8.0.1;8.0;7.5.1.1;7.5.1;7.5.0.1;7.5","Edition":""}]

Historical Number

541

Document Information

Modified date:
15 June 2018

UID

swg21439836