Maximizing The Performance of The Oracle Ebusiness Suite
Maximizing The Performance of The Oracle Ebusiness Suite
Ahmed Alomari
Applications Performance Group
Oracle Corporation
Agenda
Architecture
Application Services Tier
– Forms
– Reports
– Concurrent Manager
– Apache
Mod PL/SQL
Jserv/JVM
– Portal
– Discoverer
Network Performance
Data Server Tier
Application Tuning
11i10 Performance Improvements
Q&A
Architecture
Portal Real Application
Clusters (RAC)
Servlet Engine
JDBC
(Thin)
Java Server Pages (JSP)
Web Listener
http
AOLJ
Discoverer
TNS
PL/SQL Gateway (Net8) Data Server Tier
Clients
Reports
Forms
Concurrent Manager
Application Tier
Application Services Tier
Forms
– Deploy with socket mode for internal users:
connectMode=socket (appsweb.cfg)
– Enable Forms Dead Client Detection
Value specified in minutes
Terminates f60webmx processes for dead
clients.
FORMS60_TIMEOUT=10
– Enable Forms Abnormal Termination Handler
Do not set FORMS60_CATCHTERM
Application Services Tier
Forms
– Upgrade to the latest Forms patch set (patch set 16)
Forms patchset 7 (6.0.8.16.X) introduced a regression
which affects scalability (bug 2269913).
Results in Forms generating invalid SQL.
Fixed in Forms patchset 10 (6.0.8.19.X).
Refer to MetaLink document 125767.1 for Forms
patchset upgrades.
Application Services Tier
Forms
– Ensure users are optimally utilizing the
professional Forms interfaces.
Avoid Blind queries
Provide selective criteria in Find windows and
LOVs.
Avoid opening and closing forms across
transactions.
Users which need to switch responsibility in
order to complete a business transaction
should instead keep the relevant Forms open.
Application Services Tier
Forms (Tracing)
– If the form is slow, or a specific flow in the Form
is slow, first generate a complete SQL trace
using the Trace menu in Help-Diagnostics.
– If the SQL trace does not account for the
majority of the response time experienced by the
user, then generate a Forms Runtime
Diagnostics (FRD) Trace.
Application Services Tier
Forms (Tracing – SQL Trace)
Application Services Tier
Forms (Tracing – FRD Trace)
– Logon to Applications 11i with the following
parameters appended to the URL:
play=&record=collect&log=/tmp/oeform.trc
– Navigate through the flows which you would like
to trace.
– Exit from Oracle Applications completely.
– Review the trace file from the application server
(/tmp/oeform.trc).
Application Services Tier
Reports
– Ensure users provide selective parameters to
the standard Reports.
– Review the Report output:
Number of rows returned to the report.
Number of report pages.
– SQL Trace can be generated at Request
Submission Time (SRS form – Debug Options)
or by setting the “Enable Trace” flag in the
Concurrent Program Definition Form.
Application Services Tier
Reports (Tracing)
– If the SQL trace for the report does not account for the
elapsed time of the request, then generate a Reports
trace by appending tracing parameters the to concurrent
program command line.
Disable the mod PL/SQL service from the main listener by commenting out the
lines between the two Location parameters as follows:
# <Location /pls>
# SetHandler pls_handler
# Order deny,allow
# </Location>
For the dedicated mod PL/SQL Listener running on Port 8888, configure each
DAD to override the default CGI environment variables in order to allow
redirects. Edit the file $IAS_HOME/Apache/modplsql/cfg/wdbsvr.app and add
the following line for each DAD:
cgi_env_list=SERVER_NAME=mainhost.us.oracle.com,SERVER_PORT=7000,HOST=mainho
st.us.oracle.com:7000
Application Services Tier
Apache Jserv / JVM
– Minimize Jserv logging
log=true
log.channel.warning=true
log.file=/d1/ias/Apache/Jserv/logs/jserv_7000.log
– Review error log files for exceptions.
– Disable auto reload in production environments:
autoreload.classes=false
autoreload.file=false
– Use Jserv Auto Load Balancing
Configure Multiple Zones.
Provides higher availability and improves scalability.
Application Services Tier
Apache Jserv / JVM
– Upgrade to the latest JDK (1.4.2_06).
– Do not disable hotspot or the JIT (i.e.
–DCOMPILER=NONE or –Xint).
– Enable verbose GC in order to optimally tune the
heap sizes based on the GC traffic.
Minor Collections
Major Collections
Elapsed Time of GC
Application Services Tier
Apache Jserv / JVM
– Enable Verbose GC Output
Overload wrapper.bin with a shell wrapper in order
to redirect stdout to a file.
Existing:
wrapper.bin=/apps/jdk/jdk1.4.2/bin/java
Change To:
Wrapper.bin=/apps/scripts/java.sh
java.sh:
=========
Change To:
Wrapper.bin=/apps/scripts/java.sh
java.sh:
=========
#!/bin/sh
/apps/jdk1.4.2/bin/java -verbosegc -DCLIENT_PROCESSID=$$ $* >> /d2/logs/java.log
Application Services Tier
Apache Jserv / JVM
– Process Identification (V$SESSION)
Allows you to map the JDBC session from
v$session to a particular JVM process.
root.properties:
servlet.oracle.jsp.JspServlet.initArgs=translate_params=true,
unsafe_reload=false,
page_repository_root=/appl_top/115/common/html/jsp/pagecache,
alias_translation=true,developer_mode=false,
javaccmd=/usr/jdk142/bin/javac,send_error=true
Application Services Tier
Portal Tuning
– Tune the number of content fetcher threads for
PPE (poolSize). Default is 25.
– Adjust the fetch request timeout (requesttime).
– Adjust the fetch connection request timeout (stall).
zone.properties:
servlet.page.initArgs=poolSize=50
servlet.page.initArgs=requesttime=200
servlet.page.initArgs=stall=100
Application Services Tier
Portal Tuning
– Ensure that the mod PL/SQL cache is enabled and
sized appropriately:
$APACHE_TOP/modplsql/cfg/cache.cfg:
[PLSQL Cache]
enabled=yes
total_size=100000000
cleanup_size=75000000
cleanup_interval=86400
;
[Cookie Cache]
enabled=yes
total_size=25000000
cleanup_size=15000000
cleanup_interval=86400
max_size = 0
Application Services Tier
Discoverer 4i Viewer Tuning
– Disable Query Prediction by setting QPPEnable=0 in pref.txt.
– Set ObjectsAlwaysAccessible=1 to avoid extra workbook
SQL validation, and related dictionary SQL.
– Set the Query Governor option “Limit retrieved query data to:”
to 100 rows.
– Set the option “After opening a worksheet:” to “Don’t run
query.”
– Ensure Custom workbooks define mandatory parameters.
Network Performance
Network performance is often neglected.
Networks with poor latency or low bandwidth
impacts user response time.
Can also impact concurrent programs if the
network between the application tier and data
server tier is not optimal.
A direct switch should be used between the
application tier and data server tier
– Latency should ideally be ~1-2ms per round-trip.
Network Performance
Use the ping command to determine the latency of requests. Vary
the packet size to determine the average latency. Do not use the
default ping packet size of 32 bytes.
D:\>ping aptierhost.us.oracle.com -l 2048
. . . . . . . . . . . .
Data Server Tier
Stats Pack Report (Instance Summary)
Load Profile
~~~~~~~~~~~~ Per Second Per Transaction
--------------- ---------------
Redo size: 462,767.56 26,266.16
Logical reads: 54,537.81 3,095.50
Block changes: 3,237.12 183.74
Physical reads: 2,403.22 136.40
Physical writes: 272.19 15.45
User calls: 518.96 29.46
Parses: 223.29 12.67
Hard parses: 1.26 0.07
Sorts: 199.15 11.30
Logons: 1.85 0.11
Executes: 1,566.48 88.91
Transactions: 17.62
----------------------------------------------------------------------------------------------------
Column Stats
Column name sample_size num_distinct num_nulls density last analyzed
----------------------------------------------------------------------------------------------------
ACCOUNTING_RULE_DURATION 0 37219060 0 12-03-2004 22:51
ACCOUNTING_RULE_ID 1882057 72 18398490 .013888888 12-03-2004 22:34
. . .
BOOKED_FLAG 3724692 2 0 .5 12-03-2004 22:51
. . .
CANCELLED_FLAG 3724692 2 0 .5 12-03-2004 22:51
. . .
LINE_ID 3721906 37219060 0 .000000026 12-03-2004 22:34
LINE_NUMBER 3721906 5649 0 .000177022 12-03-2004 22:34
LINE_SET_ID 10420 18873 37114860 .000052985 12-03-2004 22:34
OPTION_NUMBER 1350665 1176 23740270 .00085034 12-03-2004 22:51
ORDERED_ITEM_ID 3210194 50265 5117120 .000019894 12-03-2004 22:34
UPGRADED_FLAG 3125945 2 5987470 .5 12-03-2004 22:51
VEH_CUS_ITEM_CUM_KEY_ID 0 37219060 0 12-03-2004 22:34
VISIBLE_DEMAND_FLAG 668876 2 30558160 .5 12-03-2004 22:51
Data Server Tier
Enable the Auto memory manager
– Pga_aggregate_target can be set to tune the PGA for the entire instance.
– Automatically tunes hash area and sort area sizes
– Returns unused memory to the OS.
Enable System Managed Undo
– No more ORA-1555s!!!
– Set undo_retention to the length of the longest running request.
Utilize Auto Segment Tablespace Management
– No need to manually set Freelist/freelist groups. A bitmap is used to
automatically scale the segment related parameters.
Enable PL/SQL Native Compilation
– Improves PL/SQL execution performance.
– Improves scalability by removing a lot of stress off of the shared pool.
Data Server Tier
New Tablespace Model for the eBusiness Suite:
– Consolidates the number of Apps tablespaces from 400
tablespaces to 10.
– Optimizes performance via the wide stripe model.
– Ideal for customers migrating to RAC or migrating to raw
devices.
– Uniform extents, locally managed
No more fragmentation!
– Migration script can be used to migrate a schema at a time.
Data Server Tier
New Tablespace Model for the eBusiness Suite:
– Objects are classified by object type and access patterns:
Transaction tables
Transaction indexes
Reference/SEED
Interface
Summary Management
Archive
NoLogging
Queue
Media
Temporary
Undo
System
Total = 12 Tablespaces
Data Server Tier
Applications Tablespace Migration Utility
– MetaLink note 248857.1
– ARU # is 3381489
Migration timings: (complete migration)
– 1.4 Terabyte customer DB
24 hours
New size of DB after migration (850 GB).
– 250 GB customer DB
4 hours
New size of DB after migration (150 GB).
Application Tuning
Review the MetaLink note “Recommended
Performance Patches for the Oracle E-
Business Suite”, 244040.1.
– Recommended performance patches for all the
modules and tech. stack components are
consolidated in this note.
Application Tuning
Workflow
– When starting background engines via Concurrent Manager,
set the Process Stuck parameter to No.
– Start a separate background engine to handle stuck
processes with a very low frequency such as once or twice a
day.
– Use deferred activities to improve online response times and
facilitate asynchronous processing for flows such as
Scheduling, PO Document Approval, etc..
– Establish a regular frequency for purging Workflow runtime
data (FNDWFPR - Purge Obsolete Workflow Runtime Data).
Application Tuning
Order Management
– OM Pack I contains numerous performance fixes
including Pricing performance fixes.
– Ensure that the profile “OM: Debug Level” is set to
zero (0).
– Ensure that the profile “QP: Debug” is set to “N”.
– Use the streamlined workflows.
Application Tuning
Payroll
– Tune the number of threads, chunk size and the buffer sizes
(pay_action_parameters):
THREADS=25
CHUNK_SIZE = 20
BAL BUFFER SIZE=550
EE BUFFER SIZE =550
RR BUFFER SIZE =550
COST BUFFER SIZE=550
– Set threads to 1.5-2.0 times the number of data server
processors.
– Set LOW_VOLUME=N to enable optimal plans.
Application Tuning
OA Framework Applications
– Refer to MetaLink note 123456.1 (Recommended Patches for
Applications) and MetaLink note 275880.1 (Framework Roadmap).
– If running FWK 5.7, ensure that you are running the latest rollup patch
for 5.7H.
Refer to MetaLink note 258333.1.
– Upgrade to the latest 9iR2 JDBC Drivers (MetaLink note
164317.1)
– Pool Monitor can be used to monitor the resource utilization
Application Module Pool
Memory Utilization
JVM Properties
Pre 11i10: https://<hostname>/servlet/OAAppModPoolMonitor
11i10: Login->Diagnostics->Show Pool Monitor.
Application Tuning
OA Framework Applications (Pool Monitor)
Application Tuning
OA Framework Applications (Pool Monitor)
Application Tuning (OA)
APPS_JDBC_URL=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)
(ADDRESS=(PROTOCOL=TCP)(HOST=ap201ops)(PORT=1526))(ADDRESS=(PROTOCOL=TCP)
(HOST=ap202ops)(PORT=1526)))(CONNECT_DATA=(SERVICE_NAME=opsperf)))
Application Tuning
AOLJ Connection Pool Monitoring
– Use the JSP (AoljDbcPoolStatus.jsp) to monitor the
connection pool status.
Lists DBC configuration parameter settings.
Connection Statistics
Locked Connections
Available Connections
Closed Connections
Allows drill-downs to determine source of the
connection.
– http://apptier.oracle.com:1200/OA_HTML/jsp/fnd/AoljDbcPoolStatus.jsp
Application Tuning
Connection Pool Status (AoljDbcPoolStatus.jsp)
Application Tuning
Purging
– Implement a regular purge process including
transient data as well as obsolete transactional
data.
– Archive system related entities prior to purge such
as
FND_CONCURRENT_REQUESTS
ICX_SESSIONS
– Purge old data before performing upgrades.
Application Tuning
Purging
Product Concurrent Program Name
40000 37,500
35000
30000
25000
19,000
20000 11.5.9
11.5.10
15000
10000
5000
0
HVOP Order Import Throughput
11i10 Performance Improvements
Order Management
– New Java Pricing Engine
25,000
25000
20000
15000
11.5.9
9,200 11.5.10
10000
5000
0
Order Throughput with Pricing
11i10 Performance Improvements
Inventory / Shipping
– 20% improvement in Pick Release.
– 25% improvement in Interface Trip Stop.
– 2X improvement in Ship Confirm.
11i10 Performance Improvements
Workflow Improvements
– Java Mailer
Parallel worker support
15,000 notifications per hour (per worker)
– Workflow engine runtime
Improved Caching
Asset Import (5X)
Order Management (5%)
– Integration with GSM
Business Event Listener
Mailer
11i10 Performance Improvements
Payroll Improvements
– New Run Balances Architecture (HRMS FP F)
– Improves reporting performance significantly (~90%):
TRR – 95%+
Payroll Register – 90%+
– US and Canadian Forms and Reports utilize the new Balance
Reporting Architecture.
– Custom reports which utilize the balance user exit also benefit
from the new run balances arch.
– Payroll run improves by 15%.
Suppression of zero and null balances provides an
additional 10% performance improvement.
11i10 Performance Improvements
TCA Customer Import
– Completely rewritten.
– Requires 9iR2 (or higher).
– Scales well with parallel workers.
– 300K customers per hour per worker
– 1 million customers imported in one hour using 4
workers.
11i10 Performance Improvements
TCA Customer Import
1,000,000
1000000
900000
800000
700000
600000
500000 11.5.9
400000 11.5.10
300000
200000
100000 10,000
0
Customer Import Throughput
11i10 Performance Improvements
11i10 Tracing Improvements
– Ability to enable all levels of SQL trace as well as PL/SQL profiler
from Forms, Framework based pages, and Concurrent Programs.
– Help->About Oracle Applications shows performance information
including time spent in the Form and time spent in the DB.
– For concurrent programs, tracing can be enabled at the program
definition level and at the request level.
– Trace file identifier is automatically set to the Applications user name
prod11i_ora_2738_BASMITH.trc
– New Report (PL/SQL Profiler)
Generates an HTML report of the PL/SQL profiler data.
11i10 Performance Improvements
11i10 Tracing Improvements (PL/SQL Profiler Report)
11i10 Performance Improvements
11i10 Tracing Improvements (PL/SQL Profiler Report)
11i10 Performance Improvements
11i10 Tracing Improvements (Performance Info.)
11i10 Performance Improvements
FND_STATS Improvements:
– No invalidate option can be used to avoid invalidating cursors
while gathering statistics.
– Auto Gather has been added to allow statistics to be gathered
only on those objects which have changed.
Change threshold is configurable.
Default is 10%.
Significantly reduces the time to gather statistics.
Improves manageability as FND_STATS automatically
determines changed object list.
– Maintain history of all gather stats requests.
– Automatically determines degree of parallelism.
11i10 Performance Improvements
Configuration Enhancements
– Reviewed and optimized default settings for the entire stack via
AutoConfig templates including:
Forms
JDK
DB
Concurrent Manager
Discoverer
AOLJ DBC
– Customer Sequence Cache settings are preserved across
patches/upgrades if current setting exceeds standard default.
– AutoConfig support for complex configurations including RAC,
Load Balancing, Firewalls, etc..
11i10 Performance Improvements
Significant reduction in patching downtime
– Parallelized large table updates.
– FNDLOAD Improvements
15% for small LDTs
Orders of magnitude for large LDTs.
– Improvements to distributed AD.
– Large indexes are now created in parallel.
– APPS_MRC schema has been eliminated.
– Optimized PL/SQL recompilation order for invalid objects.
Reminder –
please complete the OpenWorld
session survey
Thank you.
Other Relevant Sessions
Partitioning and Purging Best Practices for the
Oracle E-Business Suite
– Thursday December 9, 2004 4:00 PM, Room
3014.
Streamline Maintenance and Reduce
Downtime
– Thursday December 9, 2004 11:00 AM, Room
3014.
Oracle Database 10g Is Ready for ILM: Are
You?
– Thursday December 9, 2004 1:00 PM, Room 102
MetaLink References
Note #: Description:
123456.1 E-Business Suite Recommended Patch List
125767.1 Upgrading Developer 6i with Oracle Applications 11i
138159.1 Canceling Long Running Queries in Oracle Applications 11i
164317.1 Upgrading Oracle JDBC Drivers with Oracle E-Business Suite 11i
215268.1 Implementing and Using the JSP Precompiler
216205.1 Database Initialization Parameters and Configuration for Oracle
Applications 11i
244040.1 Recommended Performance Patches for Oracle E-Business Suite
246105.1 Using J2SE Version 1.4 with Oracle E-Business Suite 11i, Release 11.5.9
or Higher
248857.1 Oracle Applications Tablespace Model Release 11i - Tablespace Migration
Utility
258333.1 About OA Framework Mini-pack 11i.FWK.H
275880.1 Oracle Applications Framework Release 11i Documentation Road Map
Q&
A
QUESTIONS
ANSWERS