BPE Optimization

Posted on May 14, 2010 at 09.44 AM - Kuala Lumpur, Malaysia

Business Process Management needs to be used ONLY in business critical scenario whereby the requirements go beyond the standard integration. Is there anything we can do to improve the performance of BPM? Here are some of the suggestions:

1. Change delivery mode to 'without buffering' whenever possible

We can change the delivery mode using transaction SWF_INB_CONF.

If we choose to use delivery mode 'with buffering', the message will stop in the inbound queue first, before it's being pass to the integration process, which sometimes can lead to messages to be 'hang' in the system if there is no active receive step anymore in the process instance. Obviously this also means this mode requires more memory to execute.

If we choose to use deliver mode 'without buffering', the message will be right away pass to the integration process, and if there is no active receive step available after several trials, then it change the status of the inbound queue to error, as such it's easier to monitor from transaction SMQR and SMQ2.

2. Configure the inbound queue of the process to work in a dedicated background server

This configuration is only possible if change the queue assignment to one configurable queue from transaction SWF_INB_CONF. The queue will appear in the transaction SMQR where we can change the RFC destination to a dedicated background server to improve the performance.

3. Optimize the transactional behavior

This setting is part of property setting in several steps like block and send step. It basically control when SAP has to commit the LUW. You can keep expanding the transactional behavior from one block to another, but it will create huge memory requirement to hold the data. It will also create an issue when the process instance ends up with error, as it will store minimum data in the process log. So, we need to balance it out through out the whole process.

4. Use message packaging

Instead of sending the messages one by one from the inbound queue to the process instance, the message will be sent in package. This capability is quite similar to package size which we can set for the IDOC case. Excerpts are the steps to set this up

    1. Schedule the packaging job using transaction SWF_XI_CUSTOMIZING
    2. Add packaging configuration in the integration server configuration. Add new entry for Category BPE with parameter PACKAGING = 1.
    3. Activate message packaging for the individual process using transaction SWF_INB_CONF. Make the setting for the minimum number of messages and maximum package size and minimum waiting time

Life is beautiful! Let's make it meaningful and colorful!