Friday, November 22, 2013

This post shows some properties which we can be set inside our composite which impact the performance.

·         inMemoryOptimization
This property indicates to Oracle BPEL Server that this process is a transient process and dehydration of the instance is not required. When set to True, the completionPersistPolicy is used to determine persistence behavior. This property can only be set to True for transient processes or processes that do not contain any dehydration points such as receive, wait, onMessage and onAlarm activities. The inMemoryOptimization property is set at the BPEL component level. When set to True, dehydration is disabled which can improve performance in some use cases.

This property has the following values:
False (default): instances are persisted completely and recorded in the dehydration store database.
True: The completionPersist policy is used to determine persistence behavior.
·         completionPersistPolicy
This property configures how the instance data is saved. It can only be set at the BPEL component level. The completionPersistPolicy property can only be used when inMemoryOptimization is set to be True (transient processes). Note that this parameter may affect database growth and throughput (due to reduced I/O).
On (default)
The completed instance is saved normally.
The completed instance is saved, but with a different thread and in another transaction.
Only the faulted instances are saved.
Note: When an unhandled fault occurs, regardless of these flags, audit information of the instance is persisted within cube_instance table.
No instances of this process are saved.
<component name="BPELProcess">
 <implementation.bpel src="BPELProcess.bpel" />
 <property name="bpel.config.completionPersistPolicy">faulted</property>
 <property name="bpel.config.inMemoryOptimization">true</property>
·         auditLevel
You can set the audit level for a BPEL process service component. This setting takes precedence over audit level settings at the SOA Infrastructure, service engine, and SOA composite application levels.
Set the bpel.config.auditLevel property to an appropriate value in the composite.xml file of your SOA project as shown in the example below:
<component name="BPELProcess">
<implementation.bpel src="BPELProcess.bpel" />
<property name="bpel.config.auditLevel">Off</property>
Inherits the audit level from infrastructure level.
No audit events (activity execution information) are persisted and no logging is performed; this can result in a slight performance boost for processing instances.
All events are logged; however, no audit details (variable content) are logged.
Logs only serious problems that require immediate attention from the administrator and are not caused by a bug in the product. Using this level can help performance.
All events are logged. The audit details for assign activities are not logged; the details for all other activities are logged.
All events are logged; all audit details for all activities are logged.
·         bpel.config.oneWayDeliveryPolicy
The oneWayDeliveryPolicy property controls database persistence of messages entering Oracle BPEL Server. By default, incoming requests are saved in the delivery service database table dlv_message. These requests are later acquired by Oracle BPEL Server worker threads and delivered to the targeted BPEL process. This property persist delivery messages and is applicable to durable processes.

When setting the oneWayDeliveryPolicy property to async.cache, One-way invocation messages are stored in the delivery cache until delivered and if the rate at which one-way messages arrive is much higher than the rate at which Oracle BPEL Server delivers them, or if the server fails, messages may be lost. In addition, the system can become overloaded (messages become backlogged in the scheduled queue) and you may receive out-of-memory errors. Consult your own use case scenarios to determine if this setting is appropriate.

async.persist (Default)
Delivery messages are persisted in the database. With this setting, reliability is obtained with some performance impact on the database. In some cases, overall system performance can be impacted.
Incoming delivery messages are kept only in the in-memory cache. If performance is preferred over reliability, this setting should be considered.
Directs Oracle BPEL Server to bypass the scheduling of messages in the invoke queue, and invokes the BPEL instance synchronously. In some cases this setting can improve database performance.
Refernce: Oracle SOA Performance Tuning Guide


  1. I have compiled an eBook on Oracle fusion middleware 11g - BPEL PM. I appreciate, if you may give your comments.
    1. Load & Performance Testing –
    2. BPEL PM Introduction -
    3. JVM Tuning -
    4. Web Logic Server Tuning –
    5. BPEL Engine Tuning -
    6. EM Fusion Middleware Control and WLS Admin Console –
    Thanks for your feedback and encouragement.

    1. Hi Tushar,

      Please share a copy of these if you can to my email id ( I will review it and provide my feedback.

      Vivek Garg