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.
Values:

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).
Value
Description
On (default)
The completed instance is saved normally.
Deferred
The completed instance is saved, but with a different thread and in another transaction.
Faulted
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.
Off
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>
   ...
</component>
·         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>
</component>
Value
Description
Inherit
Inherits the audit level from infrastructure level.
Off
No audit events (activity execution information) are persisted and no logging is performed; this can result in a slight performance boost for processing instances.
Minimal
All events are logged; however, no audit details (variable content) are logged.
Error
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.
Production
All events are logged. The audit details for assign activities are not logged; the details for all other activities are logged.
Development
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.

Value
Description
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.
async.cache
Incoming delivery messages are kept only in the in-memory cache. If performance is preferred over reliability, this setting should be considered.
sync
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

2 comments :

  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 – http://goo.gl/x25pek
    2. BPEL PM Introduction - http://goo.gl/gJAFn7
    3. JVM Tuning - http://goo.gl/mzWKsb
    4. Web Logic Server Tuning – http://goo.gl/A2DHmH
    5. BPEL Engine Tuning - http://goo.gl/hTthVt
    6. EM Fusion Middleware Control and WLS Admin Console – http://goo.gl/x5gm5e
    Thanks for your feedback and encouragement.

    ReplyDelete
    Replies
    1. Hi Tushar,

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

      Thanks
      Vivek Garg

      Delete