1/38
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Conventions
Part I Introduction
1
Introduction and Roadmap
1.1
Document Scope and Audience
1.2
Guide to this Document
1.3
Related Documentation
2
Top Performance Areas
2.1
About Identifying Top Performance Areas
2.2
Ensure the Hardware Resources are Sufficient
2.3
Tune the Operating System
2.4
Tune Java Virtual Machines (JVMs)
2.4.1
Configuring Garbage Collection
2.4.1.1
Specifying Heap Size Values
2.4.1.2
Selecting a Garbage Collection Scheme
2.4.1.3
Disabling Explicit Garbage Collection
2.4.2
Logging Low Memory Conditions
2.4.3
Monitoring and Profiling the JVM
2.5
Tune the WebLogic Server
2.6
Tune Database Parameters
2.6.1
Tuning init.ora Database Parameters
2.6.1.1
Initialization Parameters for Oracle 10g
2.6.1.2
Initialization Parameters for Oracle 11g
2.6.2
Tuning Redo Logs Location and Sizing
2.6.3
Automatic Segment-Space Management (ASSM)
2.7
Reuse Database Connections
2.8
Enable Data Source Statement Caching
2.9
Control Concurrency
2.9.1
HTTP Connection Limits
2.9.1.1
MaxClients/ThreadsPerChild
2.9.1.2
KeepAlive
2.9.1.3
Tuning MOD_WL_OHS
2.9.2
Setting the Maximum Number of Connections for Data Sources
2.9.3
Tuning the WebLogic Sever Thread Pool
2.9.4
Tuning Oracle WebCenter Concurrency
2.9.5
Tuning BPEL Concurrency
2.10
Set Logging Levels
3
Performance Planning
3.1
About Oracle Fusion Middleware Performance Planning
3.2
Performance Planning Methodology
3.2.1
Define Your Performance Objectives
3.2.1.1
Define Operational Requirements
3.2.1.2
Identify Performance Goals
3.2.1.3
Understand User Expectations
3.2.1.4
Conduct Performance Evaluations
3.2.2
Design Applications for Performance and Scalability
3.2.3
Monitor and Measure Your Performance Metrics
4
Monitoring Oracle Fusion Middleware
4.1
About Oracle Fusion Middleware Management Tools
4.1.1
Measuring Your Performance Metrics
4.2
Oracle Enterprise Manager 11g Fusion Middleware Control
4.2.1
Viewing Performance Metrics Using Fusion Middleware Control
4.3
Oracle WebLogic Server Administration Console
4.4
WebLogic Diagnostics Framework (WLDF)
4.5
WebLogic Scripting Tool (WLST)
4.5.1
Using Custom WLST Commands
4.5.1.1
Using WLST Commands for System Components
4.6
DMS Spy Servlet
4.6.1
Viewing Performance Metrics Using the Spy Servlet
4.6.2
Using the DMS Spy Servlet
4.7
Oracle Process Manager and Notification Server
4.8
Oracle Enterprise Manager 11g Grid Control
4.9
Native Operating System Performance Commands
4.10
Network Performance Monitoring Tools
Part II Core Components
5
Oracle HTTP Server Performance Tuning
5.1
About Oracle HTTP Server
5.2
Oracle HTTP Server Directives Tuning Considerations
5.2.1
How Persistent Connections Can Reduce Httpd Process Availability
5.3
Oracle HTTP Server Logging Options
5.3.1
Access Logging
5.3.2
Configuring the HostNameLookups Directive
5.3.3
Error logging
5.4
Oracle HTTP Server Security Performance Considerations
5.4.1
Oracle HTTP Server Secure Sockets Layer (SSL) Performance Issues
5.4.1.1
Oracle HTTP Server SSL Caching
5.4.1.2
SSL Application Level Data Encryption
5.4.1.3
SSL Performance Recommendations
5.4.2
Oracle HTTP Server Port Tunneling Performance Issues
5.5
Oracle HTTP Server Performance Tips
5.5.1
Analyze Static Versus Dynamic Requests
5.5.2
Beware of a Single Data Point Yielding Misleading Results
5.5.3
Beware of Having More Modules
5.5.4
Monitoring Oracle HTTP Server
6
Oracle Metadata Service (MDS) Performance Tuning
6.1
About Oracle Metadata Services (MDS)
6.2
Tuning Database Repository
6.2.1
Collect Schema Statistics
6.2.2
Increase Redo Log Size
6.2.3
Reclaim Disk Space
6.2.4
Monitor the Database Performance
6.3
Purging Document Version History
6.3.1
Auto Purge
6.3.2
Manual Purge
6.4
Using Database Polling Interval for Change Detection
6.5
Tuning Cache Configuration
6.5.1
Document Cache
6.6
Analyzing Performance Impact from Customization
6.7
Understanding DMS metrics and Characteristics
Part III Oracle Fusion Middleware Server Components
7
Oracle Application Development Framework Performance Tuning
7.1
About Oracle ADF
7.2
Oracle ADF View Performance
7.2.1
Oracle ADF Faces Configuration and Profiling
7.2.2
Performance Considerations for ADF Faces
7.2.3
Tuning ADF Faces Component Attributes
7.2.4
Performance Considerations for Table and Tree Components
7.2.5
Performance Considerations for autoSuggest
7.2.6
Data Delivery - Lazy versus Immediate
7.2.7
Performance Considerations for DVT Components
7.3
ADF Server Performance
7.3.1
View Objects Tuning
7.3.1.1
Creating View Objects
7.3.1.2
Configuring View Object Data Fetching
7.3.1.3
Additional View Object Configurations
7.3.2
Batch Processing
7.3.3
RangeSize Tuning
7.3.4
Application Module Design Considerations
7.3.5
Application Module Pooling
7.3.5.1
General AM Pool Configurations
7.3.5.2
AM Pool Sizing Configurations
7.3.5.3
AM Pool Resource Cleanup Configurations
7.3.6
ADFc: Region Usage
7.3.7
Reusing Static Data
7.3.8
Conditional Validations
8
Oracle TopLink (EclipseLink) JPA Performance Tuning
8.1
About Oracle TopLink and EclipseLink
8.2
Efficient SQL Statements and Queries
8.2.1
Entity Relationships Query Parameter Tuning
8.3
Cache Configuration Tuning
8.3.1
Cache Refreshing Scenarios
8.3.2
Locking Modes
8.4
Coherence Integration
8.5
Mapping and Descriptor Configurations
8.6
Analyzing EclipseLink JPA Entity Performance
9
Oracle Web Cache Performance Tuning
9.1
About Oracle Web Cache
9.2
Optimizing Hardware Resources
9.2.1
Hardware Resources
9.2.2
Memory Configuration
9.2.2.1
Configuring WebCache Memory
9.3
Optimizing Network Connections
9.3.1
Network Bandwidth
9.3.2
Network Connections
9.3.3
Network-Related Parameters
9.4
Optimizing Platform Connections
9.4.1
UNIX Connections
9.4.2
Windows Connections
9.5
Increasing Cache Hit Rates
9.6
Optimizing Response Time
9.7
Optimizing Performance with Oracle ADF
Part IV SOA Suite Components
10
Cross Component Tuning for SOA Suite
10.1
About SOA Suite Configuration Properties
10.2
SOA Infrastructure Configurations
10.2.1
Audit Level
10.2.2
Composite Instance State
10.2.3
Logging Level
10.3
Modifying SOA Configuration Parameters
10.4
JVM Tuning Parameters
10.5
Database Settings
10.5.1
Configuring Data Sources for SOA
10.5.2
Weblogic Server Performance Tuning
11
Oracle Business Rules Performance Tuning
11.1
About Oracle Business Rules
11.2
Basic Tuning Considerations
11.2.1
Use Java Beans
11.2.2
Assert Child Facts instead of Multiple Dereferences
11.2.3
Avoid Side Affects in Rule Conditions
11.2.4
Avoid Expensive Operations in Rule Conditions
11.2.5
Consider Pattern Ordering
11.2.6
Consider the Ordering of Tests in Rule Conditions
11.2.7
Use Functions Instead of AssertXPath and Supports XPath
12
Oracle BPEL Process Manager Performance Tuning
12.1
About BPEL Process Manager
12.2
Basic Tuning Considerations
12.2.1
BPEL Threading Model
12.2.1.1
Dispatcher Invoke Threads
12.2.1.2
Dispatcher Engine Threads
12.2.1.3
Dispatcher System Threads
12.2.1.4
Dispatcher Maximum Request Depth
12.2.2
Audit Level
12.2.3
OneWayDeliveryPolicy
12.2.4
StatsLastN
12.2.5
AuditDetailThreshold
12.2.6
LargeDocumentThreshold
12.2.7
Validate XML
12.2.8
SyncMaxWaitTime
12.2.9
InstanceKeyBlockSize
12.3
BPEL Properties Set Inside a Composite
12.3.1
Component Properties
12.3.1.1
inMemoryOptimization
12.3.1.2
completionPersistPolicy
12.3.2
Partner Link Property
12.3.2.1
idempotent
12.3.2.2
nonBlockingInvoke
12.3.2.3
validateXML
12.4
Tables Impacted By Instance Data Growth
13
Oracle Mediator Performance Tuning
13.1
About Oracle Mediator
13.2
Basic Tuning Considerations
13.2.1
metricsLevel
13.2.2
Domain-Value Maps
13.2.3
Deferred Routing Rules
13.2.4
Error and Retry Parameters
13.3
Event Delivery Network (EDN) Tuning
14
Oracle Human Workflow Performance Tuning
14.1
About Oracle Human Workflow
14.2
Human Workflow Tuning Considerations
14.2.1
Minimize Client Response Time
14.2.2
Choose the Right Workflow Service Client
14.2.3
Narrow Qualifying Tasks Using Precise Filters
14.2.4
Retrieve Subset of Qualifying Tasks (Paging)
14.2.5
Fetch Only the Information That Is Needed for a Qualifying Task
14.2.6
Reduce the Number of Return Query Columns
14.2.7
Use the Aggregate API for Charting Task Statistics
14.2.8
Use the Count API Methods for Counting the Number of Tasks
14.2.9
Create Indexes On Demand for Flexfields
14.2.10
Use the doesTaskExist Method
14.3
Improving Server Performance
14.3.1
Archive Completed Instances Periodically
14.3.2
Select the Appropriate Workflow Callback Functionality
14.3.3
Minimize Performance Impacts from Notification
14.3.4
Deploy Clustered Nodes
14.4
Completing Workflows Faster
14.4.1
Use Workflow Reports to Monitor Progress
14.4.2
Specify Escalation Rules
14.4.3
Specify User and Group Rules for Automated Assignment
14.4.4
Use Task Views to Prioritize Work
14.5
Tuning Identity Provider
14.6
Tuning the Database
15
Oracle Adapters Performance Tuning
15.1
About Oracle Adapters
15.2
Oracle JCA Adapters for Files/FTP
15.2.1
Inbound Throttling Best Practices
15.2.2
Outbound Throttling Best Practices
15.2.3
Outbound Performance Best Practices
15.3
Oracle JCA Adapter for Database Tuning
15.3.1
JCA Adapter Basic Tuning Considerations
15.3.2
Existence Checking
15.4
Oracle Socket Adapter Tuning
15.5
Oracle SOA JMS Adapter Tuning
15.5.1
adapter.jms.receive.threads Property
15.6
Oracle AQ Adapter Tuning
15.6.1
adapter.aq.dequeue.threads Property
15.7
Oracle MQ Adapter Tuning
16
Oracle Business Activity Monitoring Performance Tuning
16.1
About Oracle Business Activity Monitoring
16.2
Oracle BAM Tuning Considerations
16.2.1
BAM Server Tuning
16.2.1.1
Set the ViewSetSharing and ElementCountLimit Parameters
16.2.1.2
Enable the Async Servlet
16.2.2
BAM Dashboard Tuning
16.2.2.1
Tune the Active Data Retrieval Interval
16.2.3
BAM Database Tuning
16.2.4
Internet Browser Tuning
16.2.4.1
Set iActiveDataScriptsCleanupFactor
16.2.4.2
Set Browser Cache Settings
16.2.5
Enterprise Message Source Tuning
16.2.5.1
Message Batching
17
User Messaging Service Performance Tuning
17.1
About Oracle User Messaging Services
17.2
Basic Tuning Considerations
17.2.1
SMPP Driver Performance Tuning
17.2.2
Email Driver Polling Frequency
17.3
Database Tuning for Optimal Throughput
Part V Identity Management Suite Components
18
Oracle Internet Directory Performance Tuning
18.1
About Oracle Internet Directory
18.2
Introduction to Tuning Oracle Internet Directory
18.3
Basic Tuning Recommendations
18.3.1
Database Parameters
18.3.2
LDAP Server Attributes
18.3.3
Database Statistics
18.4
Advanced Configurations
18.4.1
Replication or Oracle Directory Integration Platform
18.4.2
Replication Server Configuration
18.4.3
Garbage Collection Configuration
18.4.4
Oracle Internet Directory with RAC Database
18.4.5
Password Policies and Verifier Profiles
18.4.6
Server Entry Cache
18.4.6.1
When to Use the Entry Cache
18.4.6.2
Benefits of Using the Entry Cache
18.4.6.3
Values for Configuring the Entry Cache
18.4.7
Tuning Security Event Tracking
18.5
Low-Priority Tuning Recommendations
18.5.1
Number of Entries to be Returned by a Search
18.5.2
Enabling the Group Cache
18.5.3
Timeout for Write Operations
18.6
Specific Use Cases
18.6.1
Bulk Load Operation
18.6.2
Bulk Delete Operation
18.6.3
High LDAP Write Operations Load
18.7
Optimizing Searches
18.7.1
Optimizing Searches for Large Group Entries
18.7.1.1
Entry Cache Enabled Configuration
18.7.1.2
Entry Cache Disabled Configuration.
18.7.2
Optimizing Searches for Skewed Attributes
18.7.3
Optimizing Performance of Complex Search Filters
18.8
Evaluating Performance on UNIX and Windows Systems
18.9
Obtaining Recommendations by Using the Tuning and Sizing Wizard
18.10
Updating Database Statistics by Using oidstats.sql
18.11
Setting Performance-Related Replication Configuration Attributes
18.12
Modifying Performance-Related System Configuration Attributes
18.12.1
Modifying Instance-Specific Attributes by Using Fusion Middleware Control
18.12.2
Modifying Shared Attributes by Using Fusion Middleware Control
18.12.3
Modifying Attributes by Using ldapmodify
18.12.3.1
Modifying Performance-Related Instance-Specific Configuration Entry Attributes
18.12.3.2
Modifying Performance-Related Shared System Configuration Attributes in the DSA Configuration Entry
18.13
Setting Garbage Collection Configuration Attributes
18.13.1
Modifying Changelog Purging Attributes by Using ldapmodify
18.13.2
Modifying Changelog Purging in Oracle Directory Services Manager
19
Oracle Virtual Directory Performance Tuning
19.1
About Oracle Virtual Directory
19.2
Basic Tuning Configurations
19.3
Additional Tuning Configurations
19.3.1
Database Adapters
19.3.2
Join Adapters
19.3.3
General Filter Tuning
19.3.4
Load Balancer Local Store Adapter Tuning
19.3.5
Cache Plug-In Tuning
19.3.5.1
Cache Hit Logic
19.3.5.2
Cache Plug-in Memory Management
19.3.6
LDAP Listener Tuning
19.3.7
Server Tuning
20
Oracle Identity Federation Performance Tuning
20.1
About Oracle Identity Federation
20.2
LDAP Tuning
20.2.1
Connection Pool Settings
20.2.2
Connection Settings
20.2.3
Federation Data Store Settings
20.3
Database Tuning
20.3.1
Data Sources
20.3.2
RDBMS Session Cache
20.3.3
RDBMS Compression
20.4
Oracle HTTP Server Tuning
20.5
SAML Protocol Tuning
20.5.1
SOAP Connections
20.5.2
XML Digital Signatures
20.5.3
POST and Artifact Single Sign-On Profiles
21
Oracle Fusion Middleware Security Performance Tuning
21.1
About Security Services
21.2
Detecting General Performance Issues
21.3
Oracle Platform Security Services Tuning
21.3.1
JVM Tuning Parameters
21.3.2
LDAP Tuning Parameters
21.3.3
Authentication Tuning Parameters
21.3.4
Authorization Tuning Parameters
21.3.5
OPSS Tuning Parameters for LDAP Policy Store
21.4
Oracle Web Services Security Tuning
21.4.1
Choosing the Right Policy
21.4.2
Timestamp (On or Off)
21.4.3
Policy Manager
21.4.4
Configuring the Log Assertion to Record SOAP Messages
21.4.5
Monitoring the Performance of Web Services
Part VI Oracle WebCenter Suite Components
22
Oracle WebCenter Performance Tuning
22.1
About Oracle WebCenter
22.2
Tuning Environment Configuration
22.2.1
Setting System Limit
22.2.2
Setting JDBC Data Source
22.2.3
Setting JRockit Virtual Machine (JVM) Arguments
22.3
Tuning WebCenter Application Configuration
22.3.1
Setting HTTP Session Timeout
22.3.2
Setting JSP Page Timeout
22.3.3
Setting ADF Client State Token
22.3.4
Setting MDS Cache Size and Purge Rate
22.3.5
Configuring Concurrency Management
22.3.6
Configuring CRUD APIs (Create, Read, Update and Delete)
22.4
Tuning Back-End Component Configuration
22.4.1
Tuning Performance of the Announcements Service
22.4.2
Tuning Performance of the Discussions Service
22.4.3
Tuning Performance of the Instant Messaging and Presence (IMP) Service
22.4.4
Tuning Performance of the Mail Service
22.4.5
Tuning Performance of the RSS News Feed Service
22.4.6
Tuning Performance of the Search Service
22.4.7
Tuning Performance of WSRP Producers
22.4.8
Tuning Performance of Oracle PDK-Java Producers
22.4.9
Tuning Performance of OmniPortlet
22.4.10
Tuning Performance of the Portlet Service
22.4.11
Configuring Portlet Cache Size
22.4.12
Configuring Portlet Timeout
Part VII Capacity Planning, Scalability, and Availability
23
Capacity Planning
23.1
About Capacity Planning for Oracle Fusion Middleware
23.1.1
Capacity Planning Factors to Consider
23.2
Determining Performance Goals and Objectives
23.3
Measuring Your Performance Metrics
23.4
Identifying Bottlenecks in Your System
23.4.1
Using Clustered Configurations
23.4.2
Using Connection Pooling
23.4.3
Setting the Max HeapSize on JVM
23.4.4
Increasing Memory or CPU
23.4.5
Segregation of Network Traffic
23.4.6
Segregation of Processes and Hardware Interrupt Handlers
23.5
Implementing a Capacity Management Plan
23.5.1
Hardware Configuration Requirements
23.5.1.1
CPU Requirements
23.5.1.2
Memory Requirements
23.5.2
JVM Requirements
23.5.3
Managed Servers
23.5.4
Database Configuration
24
Using Clusters and High Availability Features
24.1
About Clusters and High Availability Features
24.2
Using Clusters with Oracle Fusion Middleware
24.3
Using High Availability Features with Oracle Fusion Middleware
Part VIII Appendixes
A
Instrumenting Applications with DMS
A.1
About DMS Performance Metrics
A.1.1
Instrumenting Applications with DMS
A.1.2
Monitoring DMS Metrics
A.1.3
Understanding DMS Terminology (Nouns and Sensors)
A.1.3.1
DMS Metrics
A.1.3.2
DMS Sensors
A.1.3.2.1
DMS PhaseEvent Sensors
A.1.3.2.2
DMS Event Sensors
A.1.3.2.3
DMS State Sensors
A.1.3.3
DMS Nouns
A.1.3.4
DMS Roll-up Nouns
A.1.3.5
DMS Object Relationships
A.1.4
DMS Naming Conventions
A.1.4.1
General DMS Naming
A.1.4.2
General DMS Naming Conventions and Character Sets
A.1.4.3
Noun and Noun Type Naming Conventions
A.1.4.4
Sensor Naming Conventions
A.2
Adding DMS Instrumentation to Java Applications
A.2.1
Including DMS Imports
A.2.2
Organizing Performance Data
A.2.2.1
Choosing Noun Types
A.2.3
Defining and Using Metrics for Timing
A.2.3.1
Defining PhaseEvent Sensors
A.2.3.2
Using PhaseEvent Sensors
A.2.4
Defining and Using Metrics for Counting
A.2.4.1
Defining Event Sensors
A.2.4.2
Using Event Sensors
A.2.5
Defining and Using Metrics for Recording Status Information (State Sensors)
A.2.5.1
Defining State Sensors
A.2.5.2
Using State Sensors
A.3
Validating and Testing Applications Using DMS Metrics
A.3.1
Validating DMS Metrics
A.3.2
Testing DMS Metrics For Efficiency
A.4
Understanding DMS Security Considerations
A.5
Conditional Instrumentation Using DMS Sensor Weight
A.6
Dumping DMS Metrics to Files
A.7
Resetting and Destroying Sensors
A.8
DMS Coding Recommendations
A.8.1
Isolating Expensive Intervals Using PhaseEvent Metrics
A.9
Using a High Resolution Clock to Increase DMS Precision
A.9.1
Configuring DMS Clocks for Reporting Time for Java
A.9.2
Configuring DMS Clocks for Reporting Time for Oracle HTTP Server
A.10
Rolling Up DMS Data for Descendent Nouns
B
Related Reading and References
B.1
Oracle Documentation
B.1.1
Oracle Fusion Middleware Library
B.1.1.1
Cross-Suite Administration Guides
B.1.1.2
WebCenter
B.1.1.3
Identity Management
B.1.1.4
SOA Suite
B.1.2
Oracle Database
B.1.3
Oracle JRockit Java Virtual Machine (JVM)
B.2
Sun Microsystems Information
B.2.1
Sun Java HotSpot Virtual Machine
Index
Scripting on this page enhances content navigation, but does not change the content in any way.