-
2013 Trivadis
BASEL BERN LAUSANNE ZRICH DSSELDORF FRANKFURT A.M. FREIBURG
I.BR. HAMBURG MNCHEN STUTTGART WIEN
Integration Architecture
Monitoring and Tuning Oracle Fusion Middleware and SOA Suite
11g
Matthias Furrer und Daniel Joray
TechEvent April 2013
April 2013
1Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Introduction
2
Matthias Furrer Long-standing experience in SOA and ERP Area
Architect, Consultant, Lead-Developer and Project Manager
SOA Certified Professional
Oracle SOA Blackbelt Consultant
Trainer with Trivadis Oracle Middleware und SOA
Reviewer of Technical Publications
More than 20 years of software development experience
Contact: [email protected]
April 2013
Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Agenda
Part I: Monitoring Oracle Fusion Middleware 11g Manual
Monitoring Automated Monitoring
Part II: Tuning Oracle Fusion Middleware 11g SOA Suite
Infrastructure SOA Suite Development OSB Infrastructure OSB
Development
3
April 2013
3Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Each WebLogic Server instance writes all messages from its
subsystems and applications to a server log file that is located on
the local host computer. The default location for server logs is
DOMAIN_HOME\servers\SERVER_NAME\logs\SERVER_NAME.log
Each server instance forwards a subset of its messages to a
domain-wide log file. By default, only messages with a severity
level of NOTICE or higher are forwarded. The default location for
domain logs
isDOMAIN_HOME\servers\ADMIN_SERVER_NAME\logs\DOMAIN_NAME.log
The Node Manager writes start-up and status messages
toFMW_HOME\common\nodemanger\nodemanager.log
Manual MonitoringWebLogic Logging - Overview
Detailed Information can be found in Oracle Configuring Log
Files and Filtering Log Messages for Oracle WebLogic Server
(E13739).
April 2013
4Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
In addition to writing messages to a log file, each server
instance prints a subset of its messages to standard out. If not
redirected, standard out is the shell (command prompt) in which the
server instance is running.
By default, a server instance prints only messages of a
NOTICEseverity level or higher to standard out
If Node Manager is used to start a Server, the messages that
would otherwise be output to stdout or stderr when starting a
Managed Server are instead displayed in the Administration Console
and written to a single log file for that server instance,
DOMAIN_HOME\servers\SERVER_NAME\logs\SERVER_NAME.out
Log rotation cannot be set-up for the .out files, on UNIX
systems operating system commands can be used for this.
Manual MonitoringWebLogic Logging stdout and stderr
April 2013
5Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
In addition to the WebLogic log files, Oracle Fusion Middleware
components write diagnostic log files in the Oracle Diagnostic
Logging (ODL) format. Log file naming and the format of the
contents of log files conforms to an Oracle standard and, by
default, the diagnostic messages are written in text format.
The default location for SOA Suite diagnostic logs is
DOMAIN_NAME\servers\SERVER_NAME\logs\SERVER_NAME-diagnostic.log
You can view log files using Fusion Middleware Control or the
WLST displayLogs command, or you can download log files to your
local client and view them using another tool
Manual MonitoringFusion Middleware Logging - Overview
April 2013
6Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Manual MonitoringConfiguring FMW (Diagnostic) Log Files
You can configure the server log file Fusion Middleware Control
under the SOA Infrastructure -> Log Configuration Menu
Typically you adjust settings about file names, rotation, file
retention here after initial installation
April 2013
7Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Manual Monitoring Configuring FMW (Diagnostic) Log Files Log
Levels
There are two types of loggers: Persistent loggers and Runtime
loggers
Run-time loggers are loggers that are currently active. Changing
the log level will not require a restart of the component.
Persistent loggers are loggers that are saved in a configuration
file and log levels of these loggers are persistent across
component restarts.
April 2013
8Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
The purpose of Selective Tracing is to allow for finer grained
control of logging, thereby limiting the information logged to only
that which is needed.
Selective Tracing allows for increasing the trace level in a
domain for a specified subset of activity and for a specified
duration in minutes.
Tracing sessions can be started and stopped from either Fusion
Middleware Control or WLST.
Several of the Selective Tracing options are applicable to SOA
and one, Composite Name, is specifically for SOA.
Selective Tracing is of particular benefit when trying to
troubleshoot production issues and the overhead of logging needs to
be kept to a minimum.
Manual MonitoringSelective Tracing
April 2013
9Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
You can configure Selective Tracing from the WebLogic Domain
Menu under Logs -> Selective Tracing
Manual MonitoringSelective Tracing - Configuration
April 2013
10Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Monitoring SOA Suite Infrastructure
Many options are available to monitor SOA Suite Infrastructure,
WebLogic resources and SOA Suite Components. Among these, there are
:
WebLogic Administration Console
WebLogic Administration Console Monitoring Dashboard
Dynamic Monitoring Services - DMS Spy Servlet
.
Manual MonitoringOverview available Utilities
April 2013
11Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Monitoring WebLogic Components and Resources
Among others you can monitor the following in
WebLogicAdministration Console:
Administration and Managed Servers
Subsystem Health (Applications and Adapters)
JVM Performance
Thread Activity
Workload
Security
JMS (Java Message Service)
JDBC Datasources
JTA (Java Transaction API)
Monitoring UtilitiesWebLogic Administration Console
April 2013
12Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Monitoring UtilitiesDynamic Monitoring Service (DMS)
The Oracle Dynamic Monitoring Service (DMS) enables Oracle
Fusion Middleware components to provide administration tools, such
as Oracle Enterprise Manager, with data regarding the component's
performance, state and on-going behaviour. Fusion Middleware
Components push data to DMS and in turn DMS publishes that data
through a range of different components..
DMS Spy Servlet WLDF
WLST JConsole (MBeans)
April 2013
13Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Monitoring UtilitiesDMS Spy Servlet
The Monitoring Dashboard is available under the URL:
http(s)://:/dms/Spy
You can also monitor your DMS collected metrics here
April 2013
14Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Monitoring UtilitiesAdministration Console Monitoring
Dashboard
The Monitoring Dashboard provides views and tools for
graphically presenting diagnostic data about servers and
applications running on them. The underlying functionality for
generating, retrieving, and persisting diagnostic data is provided
by the WebLogic Diagnostics Framework. The Monitoring Dashboard
provides additional tools for presenting that data in charts and
graphs.
Built-In Views
Custom Views Metrics Browser
Charts
April 2013
15Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Monitoring UtilitiesMonitoring Dashboard
The Monitoring Dashboard is available under the URL:
http(s)://:/console/dashboard
You can create your own views using the metrics browser for your
SOA Composites
April 2013
16Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Automating Monitoring
In order to automating monitoring of your infrastructure and SOA
composites with agents or scripting, the options include :
WebLogic Diagnostics Framework (WLDF)
WebLogic ScriptingTool (WLST)
Java Admin Utility
SOA Management Packs
Oracle Business Activity Monitoring (BAM)
Automated MonitoringOverview
April 2013
17Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Automated MonitoringWebLogic Diagnostic Framework (WLDF)
The WebLogic Diagnostics Framework (WLDF) is a monitoring and
diagnosticframework that defines and implements a set of services
that run within WebLogic Server processes and participate in the
standard server life cycle.
Monitoring Dashboard Notifications
Metrics
SMTP, SNMP, JMXand JMS
April 2013
18Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Automated Monitoring and AlertingWLDF Setting up Diagnostic
Module
Automated Monitoring and Alerting
1. Creating a new Mail Session , which enables applications to
access a pre-configured javax.mail.Session object through JNDI. The
Mail Session can be used for the Notification. Other options
include : SNMP, JMS
2. Creating a new NotificationThe Notification will be triggered
by the Watch.
3. Use the Dashboard or the DMS Spy Servlet application to find
the metrics and attributes that needs to be monitored
4. Creating a new WatchThe Watch will use the defined DMS
metrics to monitor system state in the Diagnostic Framework.
April 2013
19Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
In order to find the relevant metrics and associated attributes,
the easiest way is to review the available metrics in the
interactive
applications:http://:/console/dashboardhttp://:/dms/Spy
The following DMS metrics groups are good candidates to monitor
runtime activity of SOA Suite composites:
soainfra_component soainfra_mediator_flow soainfra_JCABinding
soa_infra_bpel_requests soa_infra_bpel_activity
The following DMS metrics groups are good candidates to monitor
runtime activity of JVM: JRockit (MBean)
weblogic.management.runtime.JRockitRuntimeMBean JVM JVM_GC
JVM_ThreadStats
Automated Monitoring and AlertingWLDF Use Dashboards to find
Metrics and Attributes
April 2013
20Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Automated MonitoringWLST
Use can use WLST commands to view information about a specific
performancemetric, a set of performance metrics, or all performance
metrics for a particular server or component.
DMS Metric Commands Server Status
April 2013
21Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Automated MonitoringJava Admin Utility
The weblogic.Admin utility can access the Administration Server
as well as all active server instances directly. If the
Administration Server is down, you can still use the weblogic.Admin
utility to retrieve runtime information from Managed Servers and
invoke administrative commands.
Java Management Extensions (JMX) Usable from command line or
Java Class
while(mbeanIterator.hasNext()) {serverRuntime =
(ServerRuntimeMBean)mbeanIterator.next();if(serverRuntime.getState().equals(ServerStates.RUNNING)){
serverRuntime.shutdown();}
April 2013
22Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Automated MonitoringJava Admin Utility Command Line
While the Administration Console interacts only with the
Administration Server, the weblogic.Admin utility can access the
Administration Server as well as all active server instances
directly..
April 2013
23Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Automated MonitoringSOA Management Packs
The Oracle SOA Management Pack Enterprise Edition delivers
comprehensivemanagement capabilities for a Service-Oriented
Architecture-based (SOA) environment.
Centralized Management Console Infrastructure Management
Configuration Management Deployment Automation
Adapter Metrics
Service Level Management Business Transaction Management
April 2013
24Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Automated MonitoringSOA Management Packs
Based on Cloud Control / Grid Control platform
Not included in SOA Suite license
WebLogic Management Packs also available
Source: Oracle Corp.
April 2013
25Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Automated MonitoringOracle Business Activity Monitoring
(BAM)
The primary focus of Oracle Business Activity Monitoring (BAM)
is to monitor Business Transactions. However, due to its alerting
capabilities it can also be used to monitor composite
instances.
Visualized dashboards of composite instances can be
implemented
Alerting when abnormal situations occur Deviation of expected
results can be monitored
JCA BAM-Adapters can be used in BPEL, BPM and Oracle Service Bus
SOAP web service and JMS interface
April 2013
26Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Automated MonitoringOracle Business Activity Monitoring
Integrated component of Oracle SOA Suite Included in SOA Suite
license
April 2013
27Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
TuningTop Performance Areas
To maximize the performance capabilities of the applications,
performance and scalability must be considered in environment
configuration and build into the design.
It is required to continuously monitor and track specific
performance issues within the application to understand where
tuning can improve performance
April 2013
28
Source: Oracle Corp.
Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Configuration and TuningTop Performance Areas Environment
To maximize Oracle Fusion Middleware performance, it is required
to monitor, analyze, and tune all the components that are used by
the applications.
Hardware Resources
Operating System
Java Virtual Machine
Repository Database
WebLogic Server
Database Connections and Datasource Configuration
Service Engine Configuration
Logging Levels
April 2013
29Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
ConfigurationEnvironment and Deployment Architecture
Considerations
Hardware Sufficient resources. Separate architectural components
should be deployed into separate tiers the web servers,
application servers and database should be installed in
different tiers, since they require different tuning. If the
WebCenter portal and content management components are being used,
they should also be installed on different machines
Clustering If it is believed that there might be a need for a
clustered. configuration eventually, consider
deploying into a cluster from day one, even if it is a cluster
with only one node in it.
Versions Using the current software versions ensures avoidance
of any issues that are already addressed
by patches that Oracle has released for issues encountered by
other customers.
Auditing and Logging Use diagnostic logs only with caution and
in development environments Use Warning level and above in
production environments Be aware that Nodemanager stdout/stderr
logs are not rotated
April 2013
30Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
ConfigurationEnvironment and Deployment Architecture
Considerations
.ADF Applications Use dedicated managed servers for ADF
Applications such as Human Workflow and BPM
Workspaces if used frequently.
SSL Usage Be aware that SSL encryption is coming with a
significant CPU overhead. Consider using SSL termination by
hardware load balancers and using encryption only in DMZ
Policy Store The file-based policy store (system-jazn-data.xml)
is not suitable for production
environments.. For production deployments Oracle highly
recommended to use the database or OID for the
policy store.
Development Environments Admin Server-only domains should be
used only in development environments. Use Development Mode Domains
only for development environments. Use Production Mode for
all other domains Consider tuning JVM heap settings for
JDeveloper in
ORACLE_HOME/jdeveloper/ide/bin/ide.conf
April 2013
31Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Tuning Java Virtual MachineHeap Size and Garbage Collection
Basic Recommendations
The goal of tuning your heap size is to minimize the time that
your JVM spends doing garbage collection while maximizing the
number of clients that the Fusion Middleware stack can handle at a
given time.
Best practice is to tune the time spent doing garbage collection
to within 5% of execution time.
In production environments, set the minimum heap size and the
maximum heap size to the same value to prevent wasting virtual
machine resources used to constantly grow and shrink the heap.
Ensure that the sum of the maximum heap size of all the JVMs
running on your system does not exceed the amount of available
physical RAM in order to prevent the OS from paging.
Monitor low memory conditions by configuration in Administration
Console (Configuration -> Tuning).
April 2013
32Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Tuning Java Virtual MachineSOA Suite Recommendations
Use 64-bit JVM for 64-bit platforms By the use of
UseCompressedOops, a reduction of memory usage by
something in the order of 10% can be expected. In Java SE 7,
UseCompressedOops is the default for 64-bit JVM processes when Xmx
isn't specified or is less than 32GB.
The recommended garbage collection setting for SOA/BPM is
UseParallelOldGC which will cause the JVM to use the Parallel
Scavenger collector in the young generation and the Parallel Old
collector in the tenured generation.
If running ADF applications (human task user interfaces) on the
same managed server as BPM is running on, use the concurrent
garbage collector UseConcMarkSweepGC.
April 2013
33Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Tuning JDBC Datasources
Applications obtain database connections using an application
server managed data source., which can be configured in WebLogic
Server Console. Connection Pools
When configuring the data source, ensure that the connection
pool has enough free connections.
Statement CachingStatement caching can eliminate potential
performance impacts caused by repeated cursor creation and repeated
statement parsing and creation. Statement caching also reduces the
performance impact of communication between the application server
and the database server.
Initial CapacityThe initial capacity of physical database
connections determines the number of connections to be opened when
the server is started. For frequently used databases it is
recommended to configure a higher value to avoid unnecessary open
and close of connections.
Connection TestingTry to avoid unnecessary connection
testing.
April 2013
34Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Tuning Dehydration StoreHash Partitioning Tables (SOA Suite)
Consider using hash partitioning on your tables and indexes if
your data does not easily lend itself to range partitioning, but
you would like to partition for performance and manageability
reasons. Hash partitioning provides a method of evenly distributing
data across a specified number of partitions. Rows are mapped into
partitions based on a hash value of the partitioning key.
To improve performance, consider using hash partitioning on the
following tables:
Partitioned Table Name Partition Type NumberAUDIT_COUNTER Hash
partitioning of AC_PK index Not ApplicableCUBE_INSTANCE Partitioned
and Reverse key index Not Applicable
CI_CREATION_DATECUBE_SCOPE Partition by hash (CIKEY) Partitions
= 200MEDIATOR_CASE_INSTANCE Partition by hash ("ID") Partitions =
200XML_DOCUMENT Partition by hash (document_id) Partitions =
200
April 2013
35Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Tuning Dehydration StoreHash Partitioning Indexes (SOA
Suite)
Further, consider using hash partitioning on the following
indexes:
Hash Partitioned Indexes COMPOSITE_INSTANCE_CREATED
BRDECISIONINSTANCE_INDX3 MEDIATOR_INSTANCE_INDEX2
MEDIATOR_INSTANCE_INDEX5 MEDIATOR_INSTANCE_INDEX6
MEDIATOR_INSTANCE_INDEX1 MEDIATOR_INSTANCE_INDEX3
MEDIATOR_CASE_INSTANCE_INDEX2 MEDIATOR_CASE_DETAIL_INDEX1
REFERENCE_INSTANCE_CO_ID CI_NAME_REV_STATE DOC_DLV_MSG_GUID_INDEX
STATE_TYPE_DATE
April 2013
36Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Tuning SOA Service EnginesGeneral Considerations
.Stop unnecessary ComponentsConsider stopping if not used:
worklistapp composer b2bui OracleAppsAdapter OracleAq Adapter
MQSeriesAdapter OracleBAMAdapter
. Disable DBMS job to refresh B2B Materialized View If B2B is
not being used, disable the DBMS job that refreshes the B2B
materialized view. This job
runs every minute by default. Look for
dbms_refresh.refresh('"DEV_SOAINFRA"."B2B_SYSTEM_MV"') in
dba_jobs.
. Purge Repository Database regularly Purge instances of SCA
processes regularly using the date-based purge scripts or
partitioning.
April 2013
37Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Tuning SOA Service EnginesSOA Infrastructure Settings
Audit LevelLevel of message tracking infrastructure to be
collected by the infrastructure . This information is collected in
repository database. Should not be set to Development if not
needed.
Logging LevelThe default logging level is "NOTIFICATION". For
production environments, consider using the lowest acceptable
logging level, such as "ERROR" or "WARNING" whenever possible.
Property CompositeInstanceStateEnabledThis option enables
separate tracking of the running instances. All instances are
captured as either running or not running and should not be enabled
in production environments.
Property instanceTrackingAuditTrailThresholdThis parameter is
used to limit the audit trail size while it is being built. The
default value is 1MB. This parameter can improve performance, as it
prevents huge audit trails to potentially consume a lot or all the
memory.
Property AuditKeyExtends (BPM)The default block size is 1000. If
there are more than 200 instances created per minute, consider
increasing the size of the block.
April 2013
38Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Tuning SOA Service EnginesBPEL / BPM Basic Tuning
April 2013
39
Dispatcher Invoke ThreadsThe 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
Dispatcher System ThreadsThe 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..
Dispatcher Engine ThreadsThe 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.
Higher Settings will allow for more concurrency ( but will
increase JVM heap utilization)
Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Tuning SOA Service EnginesBPEL / BPM Basic Tuning Database
persistence property
April 2013
40
The oneWayDeliveryPolicy applies to asynchronous processes only
and can be defined by the developer in the composite or on global
level.
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.CAUTION: If you set the
oneWayDeliveryPolicyproperty to async.cache and your system fails,
you may lose messages.
sync Directs Oracle BPEL Server to bypass the scheduling
ofmessages in the invoke queue, and invokes the BPELinstance
synchronously. In some cases this setting can improve database
performance.
Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Tuning SOA Service EnginesMediator Basic Tuning
April 2013
41
Metrics LevelThis 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.
Concurrency (parallel routing rules only)
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.
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.) Default Value is 200
rows.
Audit LevelConfigure only the minimum required audit level for
the respective environment.
Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Application Design ConsiderationsSOA Applications (SOA Suite
BPEL/BPMN) *)
April 2013
42
Process ComplexityAs a general rule of thumb, it is not
desirable to have a BPEL process with more than one hundred
activities in it or a BPMN process with more than about fifty
activities. Consider breaking the process down into smaller
sub-processes in order to control the amount of memory required to
maintain state and variables.
Synchronous vs. Asynchronous ProcessesSynchronous processes
should never have: Mid-process breakpoint activities (e.g. receive,
onMessage Alarm, Wait) A non-idempotent (i.e. non-retriable) invoke
A non-blocking (i.e. parallel) invoke Explicit dehydration, i.e.
the checkpoint activityThe presence of any of these in a
synchronous process will cause the engine to treat the process the
same way as an asynchronous process and dehydrate (and time-out can
occur as well)
While async processes will attract dehydration, they can easier
be load-balanced across nodes in a cluster on the other hand.
Consider to disable audit instance tracking for sync processes if
business requirements allow to do so.
Monitoring and Tuning Fusion Middleware 11g
*) Source: Oracle , March 2013, Performance Tuning for Oracle
Business Process Management Suite 11g
-
2013 Trivadis
Application Design ConsiderationsSOA Applications (SOA Suite
BPEL/BPMN) *)
April 2013
43
Anti-pattern: Synchronous fault-handlingFaults should always be
handled asynchronously, if fault handling logic is rather complex,
so that the resources that the engine is using to run the process
can be released immediately.. Consider adding an asynchronous point
like a JMS queue between failing logic and fault handling.
Use of LoopsAvoid extensive use of loops. Use of large loops
(i.e. more then ten activities in them) tends to perform poorly
with large number of instances or large variables.Use of large
loops can require the engine too keep large data objects in the JVM
heap and perform a large number of database transactions for
dehydration of state and could lead to garbage collection
bottlenecks. Consider using de-batching strategies for handling
large payloads and to control the number of records handled in a
transaction.
Translate (XSLT) or AssignAlways use assign activity for simple
data transformation. The use of transformations should be reserved
when large number of fields need to be transformed or more
complicated logic needs to be assigned.
Monitoring and Tuning Fusion Middleware 11g
*) Source: Oracle , March 2013, Performance Tuning for Oracle
Business Process Management Suite 11g
-
2013 Trivadis
Application Design ConsiderationsSOA Applications (SOA Suite
BPEL/BPMN) *)
April 2013
44
Avoid empty elements in the payloadPassing empty elements can
add a significant overhead both in terms of marshaling and in terms
of processing and data transformation logic.
Complex DecisionsIf there is a need to make a complex decision,
consider implementing the decision in the rules engine rather than
modeling a set of if/then logic in the process itself. Execution of
complex logic in the rules engine is much more efficient in terms
of memory footprint, speed of execution and volume of audit data
generated.
Avoid Marshaling overheadConsider co-locating components with
other components will avoid network propagation delay and will also
avoid marshaling and un-marshaling the data as the engine is able
to recognize and optimize local calls.
Creating direct bindings for components will allow the engine to
avoid unnecessary marshaling. However, this may not necessarily
improve overall performance and scalability.
Monitoring and Tuning Fusion Middleware 11g
*) Source: Oracle , March 2013, Performance Tuning for Oracle
Business Process Management Suite 11g
-
2013 Trivadis
Tuning OSBOperational Settings
April 2013
45
MonitoringEnable Monitoring only if needed to reduce network
traffic.
TracingTurn-on Tracing only if needed in order to avoid printing
the entire message context including headers and message body in
the server logs.
Cache Tuning for Proxy Service run-time dataOSB caches proxy
service runtime meta-data using a two-level LRU cache with static
and dynamic sections. The static section will never be garbage
collected. The cache introduces a performance tradeoff between
memory consumption and compilation cost.
The number of proxy services in the static portion of the cache
is 100 by default and can be tuned by setting the value in in the
setDomainEnv.sh file as an extra java argument as
follows:-Dcom.bea.wli.sb.pipeline.RouterRuntimeCache.size={size}
Note that caching proxy services may help throughput but could
impact memory usage.
Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
Application Design ConsiderationsOracle Service Bus *)
April 2013
46
Using Context VariablesAvoid creating many OSB context variables
that are used just once within another XqueryContext variables
created using an Assign action are converted to XmlBeans and then
reverted to the native XQuery format for the next XQuery Multiple
Assign actions can be collapsed into a single Assign action using a
FLOWR expression. Intermediate values can be created using let
statements.
Transforming Context VariablesUse a Replace action to complete
the transformation in a single step. If the entire content of $body
is to be replaced, leave the XPath field blank and select "Replace
node contents". This is faster than pointing to the child node of
$body (e.g. $body/Order) and selecting "Replace entire node".
Leaving the XPath field blank eliminates an extra XQuery
evaluation..
Payload as Input to TransformationUse $body/*[1] to represent
the contents of $body as an input to a Transformation (XQuery /
XSLT) resource. OSB treats "$body/*[1]" as a special XPath that can
be evaluated without invoking the XQuery engine.
Monitoring and Tuning Fusion Middleware 11g
*) Source: Oracle Fusion Middleware Performance and Tuning Guide
11g (E10108)
-
2013 Trivadis
Application Design ConsiderationsOracle Service Bus *)
April 2013
47
Enable Streaming for pure content-based routing
scenariosRead-only scenarios such as Content-Based Routing can
derive better performance from enabling streaming. OSB leverages
the partial parsing capabilities of the XQuery engine when
streaming is used in conjunction with indexed XPaths. Thus, the
payload is parsed and processed only to the field referred to in
the XPath.
Appropriate QoS LevelDo not set XA or Exactly-Once unless the
reliability level required is once and only once.OSB can invoke a
back end HTTP service asynchronously if the QOS is "Best-Effort".
Asynchronous invocation allows OSB to scale better with long
running back-end services. It also allows Publish over HTTP to be
truly fire-and-forget.
XQuery Tuning Avoid the use of double front slashes (//) in
XPaths Index XPaths where applicable Extract frequently used XPaths
of large documents and intermediary variables within a FLOWR
expression
Monitoring and Tuning Fusion Middleware 11g
*) Source: Oracle Fusion Middleware Performance and Tuning Guide
11g (E10108)
-
2013 Trivadis
TuningTop Resources
Oracle Database Performance Tuning Guide 11g(B28274)
Oracle Fusion Middleware Performance and Tuning for Oracle
WebLogic11g(E13814)
Oracle Fusion Middleware Performance and Tuning Guide
11g(E10108)
Performance Tuning for Oracle Business Process Management Suite
11g
April 2013
48Monitoring and Tuning Fusion Middleware 11g
-
2013 Trivadis
BASEL BERN LAUSANNE ZRICH DSSELDORF FRANKFURT A.M. FREIBURG
I.BR. HAMBURG MNCHEN STUTTGART WIEN
Thank you.Trivadis AG
Matthias Furrer & Daniel Joray
Europa-Strasse 5CH-8152 Glattbrugg
www.trivadis.com
April 2013
49Monitoring and Tuning Fusion Middleware 11g