Skip navigation

Raj_G's Blog

January 2020 Previous month Next month

BPEL Performance Tuning Options

Posted by Raj__K Jan 10, 2020

BPEL Performance Tuning Options


The BPEL performance can be tuned to improve the performance. Some of the tuning options are listed below. Depending on the configuration it can be SOA infrastructure level OR composite level ones.


1. Audit configuration

        The Audit property persist a lot of details about the BPEL process(its state, business flow etc) in the SOA Infra Database. This requires sevaral inserts in SOA Infra Database which is an additional processing. This can impact the performance to some extent. Oracle has provided an option to turn off this option. Assume the services that are running in this environment are running for a long time and stable ones that doesnot need auditing, they the audit option could be turned off.

        This applies to both durable and transient processes.

        As this is s SOA infrastructure level configuration change, it will be applied on all the BPEL processes running in this environment. Hence give enough time to weigh the performance benefit over the auditing before turning it off.

        The following Oracle documentation provides the steps to modify the Audit Configuration.


2. Configure the inMemoryOptimization and completionPersistPolicy property depending on the requirement.

3. Define a proper retention period for the instances data in the repository.


These are some of the options which could improve the performance of BPEL component. However before updating these parameters, Please understand these properties in detail by going through the Oracle Developers Guide. I would continuosly update this blog with additional performance tuning options in near future.


SOA SuiteSOA IntegrationSOA & Process ManagementSOA - General Best PracticesBPELBPEL PM (Korean)

Recently I came across an issue in the Oracle community site related to behaviour of transactions in BPEL component. The issue was when a BPEL component is having a database call followed by a synchronous webservice call. Though the database call is part of the XA transaction that is started when BPEL instance is created, the database changes are not getting rolled back incase of Exception after the webservice call. This happens only when the nonBlockingInvoke property is set to TRUE for the webservice invoke activity. If nonBlockingInvoke property is set to FALSE the database changes are getting rolled back as expected.


In one of the old Oracle documentation it is mentioned that, the invoke activity of a synchronous service with nonBlockingInvoke property set to true, will create a "New Transaction". That could be the reason why the previous database adapter call has got commited before the Webservice invocation. So rollback of database changes has not happened.




It was interesting to know this. The key takeaway is to be careful to check whether the properties we define while implementations meets the requirement expectation. Please feel free to share your experience if you have faced similar issue.


BPELSOA SuiteSOA - General Best PracticesSOA Suite Support BlogTransaction ProcessingMiddlewareBob Rhubart-OracleMiddleware (MOSC)