This chapter describes how to tune Oracle Mediator for optimal performance. It contains the following topics:
Mediator is a component of Oracle SOA offering that provides mediation capabilities like selective routing, transformation and validation capabilities, along with various message exchange patterns, like synchronous, asynchronous and event publishing or subscription. Oracle Mediator provides the framework to mediate between various providers and consumers of services and events. The Mediator service engine runs with the SOA Service Infrastructure Java EE application.
See Also:For details about the SOA Suite, see Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.
For details about Oracle Mediator, see "Administering Oracle Mediator Service Components and Engines" in Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite.
In most business environments, customer data resides in disparate sources including business partners, legacy applications, enterprise applications, databases, and custom applications. The challenge of integrating this data efficiently can be met by using Oracle Mediator to deliver real-time data access to all applications that update or have a common interest in the same data.
Note:Before you begin tuning Oracle Mediator properties, be sure that you have read and understand the Oracle Mediator chapters in the Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite.
This section provides details about setting common Oracle Mediator properties such as:
This property controls DMS metrics tracking level. By default, DMS metrics collections is enabled. If you do not need to collect DMS metrics data, consider setting the
metricsLevel to Disabled to improve performance.
When performance is an issue, consider using domain-value maps instead of database lookup within XSL transformations to minimize file I/O.
For more information on using domain value maps, see "Working with Domain Value Maps" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.
The following performance configuration parameters can be used for tuning components with parallel routing rules deployed:
DeferredWorkerThreadCount: Specifies the number of deferred dispatchers for processing messages in parallel. For higher loads consider increasing this parameter to have more number of outbound threads for deferred processing as each parallel rule is processed by one of the
DeferredWorkerThreads. Default value is 4 threads.
DeferredMaxRowsRetrieved: When Mediator routing rule type is set to 'Parallel',
DeferredMaxRowsRetrieved sets the number of maximum rows (maximum number of messages for parallel routing rule processing) that are retrieved from Mediator store table (which stores messages for parallel routing rule for processing.) Note that each message retrieved in this batch is processed by one worker thread at a time. Default value is 200 rows.
DeferredLockerThreadSleep: For processing parallel routing rules, Oracle Mediator has a daemon locker thread that retrieves and locks messages from Mediator store database. The thread polls the database to retrieve messages for parallel processing. When no messages are available, the locker thread "sleeps" for the amount of time specified in the
DeferredLockerThreadSleep and prevents round trips to database. Default value is 2 seconds. Consider increasing this value to improve performance. Some use case scenarios can benefit from a 'sleep' of 3600 seconds (60 minutes.)
During the specified time, no messages are available for parallel routing in either of the following cases:
There are no Mediator components with parallel routing rules deployed.
Mediator component(s) with parallel routing rule is deployed, but there are no continuous incoming messages for such components.
Note:You can specify Oracle Mediator component Priority through JDeveloper Mediator designer. This property is used to set priority among Oracle Mediator components with parallel routing rules.
For more information, see "Creating Mediator Routing Rules" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.
Consider increasing the
ErrorLockerThreadSleep parameter value when you do not want to reduce the number of database trips.
ErrorLockerThreadSleep parameter specifies the idle time between two successive iterations for retrieving errored out messages when there is no errored out message from parallel processing. The time is measured in seconds. Default value is 5 seconds. Consider increasing this value to improve performance. Some use case scenarios can benefit from an idle time of 3600 seconds (60 minutes.)
For more information on routing, see "Creating Mediator Routing Rules" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.
auditLevel property sets the audit trail logging level. This configuration property is applicable to all the Mediator components. This property controls the amount of audit events that are logged by a Mediator component. 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 Mediator component from Oracle Enterprise Manager Console.
Use the off value if you do not want to store any audit information. This value can improve performance in some use cases. 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.
|Inherit||Inherits the audit level from infrastructure level.|
|off||No audit events (flow execution information) are persisted and no logging is performed; this can result in a slight performance boost for processing instances.|
|Production||All events are logged. For each audit event, the payload details are not persisted.|
|Development||All audit events are logged. For each audit event, the payload details are also persisted.|
A Resequencer is used to rearrange a stream of related but out-of-sequence messages back into order. It sequences the incoming messages that arrive in a random order and then send them to the target services in an orderly manner.
For more information about Resequencers, refer to "Administering Oracle User Messaging Service" in the Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite.
You can fine tune Resequencer by setting the value of the following properties in the Mediator Service Engine Properties page:
ResequencerWorkerThreadCount: Specifies the worker thread count. Default is 4.
ResequencerMaxGroupsLocked: Specifies the maximum number of groups locked in each iteration. Default is 4.
ResequencerLockerThreadSleep: Specifies the sleep interval for the locker threads in seconds. Default is 10.
The Event Delivery Network (EDN) delivers events published by Oracle Mediator, Oracle BPEL Process Manager components, and external publishers such as Oracle Application Development Framework entity objects.
To improve performance of the Event Delivery Network, consider increasing the thread count (default is 3.) This property can be modified through WLST. For more information, see Section 11.3, "Modifying SOA Configuration Parameters".