Skip Headers
Oracle® Fusion Middleware Performance and Tuning Guide
11g Release 1 (11.1.1.7.0)

Part Number E10108-13
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

16 Oracle Business Process Management Performance Tuning

The Oracle Business Process Management (BPM) Suite provides a seamless integration of all stages of the application development life cycle from design-time and implementation to run-time and application management.

This chapter contains the following sections:

16.1 About Oracle Business Process Management

The Oracle BPM Suite provides an integrated environment for developing, administering, and using business applications centered around business processes. BPM is layered on the Oracle SOA Suite and shares many of the same product components, including Business Rules, Human Workflow, and Oracle Adapter Framework for Integration.

For more information on using BPM, see the Oracle Fusion Middleware User's Guide for Oracle Business Process Management.

For more information on tuning Oracle BPM with your other Oracle Fusion Middleware components, see Chapter 2, "Top Performance Areas".

16.2 Basic Tuning Considerations

This section describes the following basic BPM performance tuning properties:

Note:

The configuration examples and recommended settings described in this chapter are for illustrative purposes only. Consult your own use case scenarios to determine which configuration options can provide performance improvements.

16.2.1 Audit Level

The auditLevel property sets the audit trail logging level. This configuration property is applicable to both durable and transient processes. This property controls the amount of audit events that are logged by a process. Audit events result in more database inserts into the audit_trail table which may impact performance. Audit information is used only for viewing the state of the process from Oracle Enterprise Manager Console.

Use the off value if you do not want to store any audit information. Always choose the audit level according to your business requirements and use cases. For more information on setting the audit level, see "Understanding the Order of Precedence for Audit Level Settings" in Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite.

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.


16.2.2 LargeDocumentThreshold

The largedocumentthreshold property sets the large XML document persistence threshold. This is the maximum size (in kilobytes) of a BPMN Data Object before it is stored in a separate location from the rest of the instance scope data.

This property is applicable to both durable and transient processes.

Large XML documents impact the performance of the entire Oracle BPM Runtime if they are constantly read in and written out whenever processing on an instance must be performed.

The default value is 10000 (100 kilobytes).

16.2.3 Dispatcher System Threads

The dspSystemThreads property specifies the total number of threads allocated to process system dispatcher messages. System dispatcher messages are general clean-up tasks that are typically processed quickly by the server (for example, releasing stateful message beans back to the pool). Typically, only a small number of threads are required to handle the number of system dispatch messages generated during run time.

The minimum number of threads for this thread pool is 1 and it cannot be set to 0 a or negative number.

The default value is 2. Any value less than 1 thread is changed to the default.

16.2.4 Dispatcher Engine Threads

The dspEngineThreads property specifies the total number of threads allocated to process engine dispatcher messages. Engine dispatcher messages are generated whenever an activity must be processed asynchronously. If the majority of processes deployed are durable with a large number of dehydration points (mid-process receive, onMessage, onAlarm, and wait activities), greater performance may be achieved by increasing the number of engine threads. Note that higher thread counts can cause greater CPU utilization due to higher context switching costs.

The minimum number of threads for this thread pool is 1 and it cannot be set to 0 a or negative number.

The default value is 30 threads. Any value less than 1 thread is changed to the default.

16.2.5 Dispatcher Invoke Threads

The dspInvokeThreads property specifies the total number of threads allocated to process invocation dispatcher messages. Invocation dispatcher messages are generated for each payload received and are meant to instantiate a new instance. If the majority of requests processed by the engine are instance invocations (as opposed to instance callbacks), greater performance may be achieved by increasing the number of invocation threads. Higher thread counts may cause greater CPU utilization due to higher context switching costs.

The minimum number of threads for this thread pool is 1 and it cannot be set to 0 a or negative number.

The default value is 20 threads. Any value less than 1 thread is changed to the default.

16.3 Tuning Oracle Workspace and Worklist Applications

The following settings can be used to tune Oracle Workspace and Worklist applications:

Parameter Description

HTTP Session Timeout

To manage over resource usage, adjust the session timeout value, in minutes, in the web.xml file.

The following is a sample snippet of web.xml:

<session-config>
         <session-timeout>
            5
         </session-timeout>
      </session-config>

NOTE: If you must modify this property, post deployment, you must edit web.xml manually. See "Editing web.xml Properties" in Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal.

ADF Client State Token

Through this setting, you can control the number of pages users can navigate using the browser Back button without losing information. To reduce CPU and memory usage, you can decrease the value in the web.xml file.

The following is a sample snippet of web.xml:

<context-param>
         <param-name>
            org.apache.myfaces.trinidad.CLIENT_STATE_MAX_TOKENS
         </param-name>
         <param-value>
            3
         </param-value>
      </context-param>

NOTE: If you must modify this property, post deployment, you must edit web.xml manually. See "Editing web.xml Properties" in Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal.

Compress_View_State Token

This setting controls whether or not the page state is compressed. Zipping greatly reduced the memory being taken up by page state in the session object.

The following is a snippet of the web.xml:

<param-name>org.apache.myfaces.trinidad.COMPRESS_VIEW_STATE</param-name>
 <param-value>true</param-value>

DISABLE_CONTENT_COMPRESSION

By default, style classes that are rendered are compressed to reduce page size. In production environments, make sure you remove the DISABLE_CONTENT_COMPRESSION parameter from the web.xml file or set it to FALSE.

The following is a snippet of the web.xml:

<param-name>org.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSION</param-name> <param-value>false</param-value>

16.4 Tuning Process Analytics

Tuning Process Analytics includes the following:

16.4.1 Process Measurement

Process Analytics uses measurement events to sample the process and publish measurements to registered consumers. These measurements can be disabled using the BPMN Configuration "Disable Sensors". Specific consumers for these measurements can be disabled by setting the BPMN Configuration "Disable Actions". For more information, see the Oracle Fusion Middleware Administrator's Guide.

Note:

Only data that is useful should be published. The process design specifies what data (dimensions, measure, counters) should be published and at what point(s). If data is being generated that is not useful, then it could be adding unnecessary load to the system.

Measurement events are published on the JMS Topic: MeasurementTopic, and consumed by registered Action MDBs. In order to tune JMS for Measurements, consider changing the following, as needed, in a high volume environment:

  • MeasurementTopic

    Bytes Max 800 MB

    Message Max 1000000

  • MeasurementTopicConnectionFactory

    Send Timeout 240000

  • BPMJMSServer

    MessageBuffer Size 100000

    Note that the BPMJMSServer uses a Paging File and JMSFileStore.

16.4.2 Tuning Process Cubes

Process Cubes perform periodic aggregations to compute workload information. The frequency of these computations is determined by the CubeUpdateFrequency parameter of BPMNConfig mbean and can be changed from the Oracle Enterprise Manager console. In a high volume environment, consider changing this parameter to an appropriately higher value such as 12 hours, for example, to conserve computing resources.

Note:

The creation of workload snapshots can impact performance. Consider using the properties in Oracle Fusion Middleaware Control to tune the frequency and time to live (TTL) for workload snapshots. For more information on using Fusion Middleware Control, see the Oracle Fusion Middleware Administrator's Guide.

Process Cube Aggregator uses the BPM_CUBE_AUDITINSTANCE table to compute workload and performance information. Unwanted records from the BPM_CUBE_AUDITINSTANCE table get purged as part of the SOA Purge script. Additionally, consider running the following delete script periodically to purge the unwanted records from BPM_CUBE_AUDITINSTANCE table for improving the performance of Process Cube computations.

DELETE FROM BPM_CUBE_AUDITINSTANCE A
WHERE EXISTS
(SELECT 1 FROM BPM_CUBE_AUDITINSTANCE B
WHERE A.COMPONENTINSTANCEID = B.COMPONENTINSTANCEID AND
B.OPERATION='INSTANCE_CREATED' AND
B.ACTIVITYSTATUS='PROCESSED')

After deleting unwanted records as described above, you should also consider "shrinking space". Deleted space is not immediately reclaimed, therefore run the following commands:

alter table BPM_CUBE_AUDITINSTANCE enable row movement;
 
alter table BPM_CUBE_AUDITINSTANCE shrink space;
 
ALTER TABLE BPM_CUBE_AUDITINSTANCE MODIFY LOB (<lob_column>) (SHRINK SPACE);

16.4.2.1 Tuning Workload Table Record Proliferation

  1. Use the "Attribute" business indicators instead of "Dimension" business indicators when there is high cardinality. Workload records get generated in large numbers if a dimension business indicator has high cardinality. Before 11.1.1.7.0 release, its best to avoid using such business indicator. If the value is numeric, please consider making them as measure business indicator

    From 11.1.1.7.0 release onwards, "Attribute" type business indicators have been introduced. It is recommended that all business indicators with high cardinality, which are neither dimensions nor measures, should be ideally created as an "Attribute" type business indicator. If you notice high memory usage (by workload calculation) and generation of large number of workload records for each interval, then re-evaluate all the dimension business indicators in the composite and determine if any of them should be actually created as an "Attribute" business indicator (keeping the same name). Once the change is done, re-deploy the updated composite with "Keep instances running" option.

  2. Workload timer does the purge and workload calculation as part of the same transaction. If the purge times out, for example, txn timeout, connection resource not available and more, workload timer stops purging from the next snapshot onwards so that it does not affect the workload calculation.

    • The timer based purge can be resumed by either updating the BPMNConfig CubeUpdateFrequency parameter or by the restarting server.

    • If the environment has high number of records in bpm_cube_workload table, then it is best to update the bpm_cube_workload table manually. The only impact of this action is that the workload dashboards in workspace do not show any data till a fresh snapshot of workload calculation is populated.