Top Banner
Imagination at work. Ajith Narayanan Technical Lead-Oracle ERP Configuration Management GE Healthcare, Bangalore, India 8th Dec-2014, Liverpool, U.K. Best Practices For Large Oracle Apps R12 Implementations
32

Best practices for large oracle apps r12 implementations apps14

Apr 14, 2017

Download

Ajith Narayanan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Best practices for large oracle apps r12 implementations apps14

Imagination at work.

Ajith NarayananTechnical Lead-Oracle ERP Configuration ManagementGE Healthcare, Bangalore, India8th Dec-2014, Liverpool, U.K.

Best Practices For Large Oracle Apps R12 Implementations

Page 2: Best practices for large oracle apps r12 implementations apps14

Disclaimer

Page 3: Best practices for large oracle apps r12 implementations apps14

The views/contents in this slides are those of the author and do not

necessarily reflect that of General Electric Company or Oracle

Corporation and/or their respective affiliates/subsidiaries.

The material in this document is for informational purposes only, and is

provided on an AS-IS basis.

11/14/2014

3

Page 4: Best practices for large oracle apps r12 implementations apps14

Who Am I?Ajith Narayanan

Technical Lead – Oracle ERP Configuration Management

GE Healthcare, Bangalore, India

• 10 years of Oracle [APPS] DBA/Technical Architect experience.

• Oracle ACE Associate

• Blogger :- http://oracledbascriptsfromajith.blogspot.com

• Member:-OAUG, AIOUG

• Website Chair (2011-2013) – Oracle RACSIG http://www.oracleracsig.org

• AIOUG Real Application Clusters SIG Leader

11/14/2014

4

Page 5: Best practices for large oracle apps r12 implementations apps14

AgendaWhy do we need to implement best practices?

• Application Tier

• R12 Tech Stack

• Forms

• Response Time

• Web Applications

• Concurrent Manager

• Workflow Engine

• Taking Diagnostics Help

• CBO Statistics

• Application Patching

• Network & Latency Check

11/14/2014

5

Page 6: Best practices for large oracle apps r12 implementations apps14

Agenda• Database Tier

• CPU Utilization Observations and analysis • High DB_IO observation and correlation with CPU usage. • Identify Top SQLs • Effective usage of AWR, ADDM Reports • ORACHK Check (From Oracle RAC assurance team)

• ADR Command Interpreter (ADRCI)

• Cluster Callout scripts example.

• Looking At Issues Proactively & From Greater Heights

• References

• Q & A

11/14/2014

6

Page 7: Best practices for large oracle apps r12 implementations apps14

Why do we need to implement best practices?

11/14/2014

7

Page 8: Best practices for large oracle apps r12 implementations apps14

Oracle Applications R12

• Huge infrastructure

– Oracle Applications R12

– 8 Node middle tiers

– 16 Node RAC database tier.

– Database Size 40+ TB

– Annual DB growth of 2 TB

– Daily Orders: 45 K –3 M order lines

– 1500 online users

– 1M+ XML messages/day

Best Practices

• Benefits

– Enables us being proactive

– simple in terms of manageability

– Helps in support cost reduction.

– Time & effort saving

Why do we need to implement best practices?

11/14/2014

8

Page 9: Best practices for large oracle apps r12 implementations apps14

Upgrade Tech Stack

• R12 Tech Stack

• OC4J: Oracle AS 10g 10.1.3./ Weblogic Managed Servers (FMW)

• Forms: Oracle AS 10.1.2

• JAVA, JRE Plugin

Useful MOS Articles

� Oracle E-Business Suite Technology Stack Release Notes for Release 12.1.3 (MOS Note - 1098650.1)

� Oracle E-Business Suite Technology Stack Release Notes for Release 12.2*

� Oracle E-Business Suite - Technology Stack : Navigation (landing) Page (MOS Note - 1480550.1)

� Troubleshooting Assistant: EBS Technology Stack (Doc ID 1607365.2)

Application Tier

11/14/2014

9

Page 10: Best practices for large oracle apps r12 implementations apps14

Application Tier

11/14/2014

10

Page 11: Best practices for large oracle apps r12 implementations apps14

Forms

• Socket Mode for Internal users (MOS 384241.1)

• Servlet mode is default in R12 and recommended for external access.– cat $FORMS_WEB_CONFIG_FILE|grep serverURL=

If the serverURL parameter has no value then Forms is implemented in socket mode else it is servlet

• Forms dead client detection (DCD) and Abnormal termination handler.– Value specified in minutes : FORMS_TIMEOUT=10

env | grep -i FORMS_TIMEOUT

– Terminates fwebmx processes for dead clients.

– Enable Forms Abnormal Termination Handle

– Do not set FORMS_CATCHTERM

– SQLNET.EXPIRE_TIME – Probes client connection at regular interval.

Useful MOS Articles

Application Tier

11/14/2014

11

� Forms Process (FRMWEB) Consumes 100% of CPU in Oracle Applications R12 (Doc ID 745711.1)

Page 12: Best practices for large oracle apps r12 implementations apps14

Response Time/CPU Issues

• When users complain about response time, configure Apache to log the time it takes to service a request.

• Access logs monitoring should be good way to keep a tab on the response times of user requests.

– Configure Apache to log the time it takes to service a request

– Logs: $LOG_HOME/ora/10.1.3/Apache/access_log*

– Edit: $ORA_CONFIG_HOME/10.1.3/Apache/Apache/conf/httpd.confLogFormat "%h %T

(Or)– Enable Execution Content ID's (ECID) for the access_log in Release 12. ECID's allow correlation of

requests across log files so that one can map the flow of a given request across the various components of iAS.

LogFormat "%h %l %u %t [ecid: %{Oracle-ECID}i] \"%r\" %>s %b [%T (secs)]" combined

Refer to http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html for getting http return code definitions

Note - R12.2 replaces Oracle 10gAS OC4J containers with Weblogic managed servers.

Application Tier

11/14/2014

12

Page 13: Best practices for large oracle apps r12 implementations apps14

Web Applications

• Train users to logout when transactions are complete.– Logging out gracefully releases the memory and corresponding resources (i.e. connections, etc.)

Releases process resources sooner

• JVM/OC4J Sizing + Heap Size– OACORE, OAFORMS, OAFM etc..

– Start with no more than 100 active users per JVM/OC4J instance.

– Start with 1 active JVM/OC4J instance per CPU core

Note:- Each 'core' in a multi-core system is considered to be a separate CPU. For example, a dual quad-core chip would be the same as stating 2 x 4 x CPU or 8 CPUs.

Useful MOS Articles

� JVM: Guidelines to setup the Java Virtual Machine in Apps Ebusiness Suite 11i and R12 (Doc ID 362851.1)

� MOS Note 357597.1 on how to enable SQL trace for OA Framework applications

Application Tier

11/14/2014

13

Page 14: Best practices for large oracle apps r12 implementations apps14

EBS Concurrent Processing Analyzer

• The EBS Concurrent Processing Analyzer is a self-service health-check script

• Reviews the overall Concurrent Processing

• Analyzes the current configurations & settings for the environment.

• Providing feedback and recommendations on best practices.

• APPS Workload (Concurrent, FORM, ICX) observations.

• Mandatory Concurrent Programs fro purging.

Sample Output

Useful MOS Articles

Application Tier

2DEMO_cp_analyzer.html

11/14/2014

14

� Best Practices for Performance for Concurrent Managers in E-Business Suite [Doc ID- 1057802.1]

� Concurrent Processing - CP Analyzer for E-Business Suite (Doc ID 1411723.1)

Page 15: Best practices for large oracle apps r12 implementations apps14

EBS Workflow Analyzer

• The EBS Workflow Analyzer is a script that reviews the current Workflow Footprint.

• Analyzes the workflow configurations & Provides feedback and makes recommendations on best practices and areas of concern.

• Provides immediate analysis and output of the EBS Workflow environment.

• Workflow Process Stuck & Work Flow Checks

Sample Output

Useful MOS Articles

Application Tier

2DEMO_wf_analyzer.html

11/14/2014

15

� How to run EBS Workflow Analyzer Tool as a Concurrent Request (Doc ID 1425053.1)

� 11i-12 Workflow Analyzer script for E-Business Suite Workflow Monitoring and Maintenance [Video] (Doc ID 1369938.1)

� How To Use Concurrent Program "Purge Order Management Workflow" (Doc ID 878032.1)

Page 16: Best practices for large oracle apps r12 implementations apps14

OAM Diagnostics Help

• Oracle Application Object Library Best Practices: Database Security Tests Health Check Test

• Oracle Application Object Library Best Practices: E-Business Suite Security Tests Health Check Test

• Oracle Application Object Library Best Practices: E-Business Suite Diagnostic Tests Health Check Test

• And many more……

Application Tier

11/14/2014

16

Page 17: Best practices for large oracle apps r12 implementations apps14

CBO Statistics

• FND_STATS uses the standard the DBMS_STATS package, but enhances the functionality as it provides several additional PL/SQL procedures for gathering statistics at the table, schema, or database level.

• The FND_STATS package also supports histograms, table exclusions, extended stats, incremental stats gathering for partitioned tables, and concurrent statistics gathering.

Useful MOS Articles

Application Tier

11/14/2014

17

� Best Practices for Gathering Statistics with Oracle E-Business Suite (Doc ID - 1586374.1)

� bde_last_analyzed.sql - Verifies CBO Statistics (Doc ID - 163208.1)

Page 18: Best practices for large oracle apps r12 implementations apps14

Application Patching

• Thorough patch analysis with timing reports on sand box & non-prods environments before proceeding with the Prod patching.

• In Release 12, you register your customized files in the Register Flagged Files tool in Oracle Applications Manager (OAM), which replaces the $APPL_TOP/admin/applcust.txt file.

Useful MOS Articles

Application Tier

11/14/2014

18

� See Note 9766881 "My server does not have internet connection Can I Still use Patch Wizard?“

� Patching Best Practices And Reducing Downtime (Doc ID 225165.1)

Page 19: Best practices for large oracle apps r12 implementations apps14

• There are two diagnostic tools available in the Oracle E-Business Suite:

The Network test Form – This form can be added to user’s menu , So that they can run the tests when they feel a performance degradation

Note:- Network latency should be always low (<3ms) and bandwidth should be high.

Application TierNetwork & Latency

11/14/2014

19

Page 20: Best practices for large oracle apps r12 implementations apps14

Useful MOS Articles

The Client Analyzer

Application TierNetwork & Latency

11/14/2014

20

� Oracle E-Business Suite Network Utilities: Best Practices (Doc ID 556738.1)

Page 21: Best practices for large oracle apps r12 implementations apps14

CPU Utilization Observations and analysis

• CPU spikes for more than 30 minutes continuously is a candidate for RCA.

• High DB_IO observation and correlation with CPU usage.

• I/O Thresholds: Logical RDS > 300K/sec, Physical RDS> 3000/Sec are candidate for RCA.

– How many of you think RAM access is 10,000 times faster than Physical disk access?

– In real world, LIO is only 25-100 times cheaper than PIO

– Internal locks & latch serialization mechanisms involved.

– Targeting only PIO counts(or high cache hit ratios) important pitfall to avoid. Even with no PIOs, a query can still be outrageously inefficient

– LIO are a critical component of query cost

Database Tier

11/14/2014

21

Page 22: Best practices for large oracle apps r12 implementations apps14

AWR, ASH, ADDM Reports

• Identify Top SQL, Latch Spin Counts etc., Memory Advisors

• Identify top wait events (System, User IO, Cluster, Concurrency, Configuration, Applications, Network)

• Fragmented Interface tables

• Object to be pinned – (Frequently used database objects)

• RAC Check (From Oracle RAC assurance team) RACcheck - RAC Configuration Audit Tool (Doc ID 1268927.1)

• ORAchk - Health Checks for the Oracle Stack (Doc ID 1268927.2)

• Sample ORACHK report

• ORAchk-Collection Manager

– ORAchk daemon auto-start mode after node reboot (init integration)

– Merge multiple ORAchk collection reports

– Exclude checks based on profile

– Upload of installed patches to database

– Collection Manager for ORAchk, RACcheck and Exachk (Doc ID 1602329.1)

– ORAchk signature file in /tmp on all nodes to verify last ORAchk run

– New checks and bug fixes, including o 30 Oracle Ebusiness AP module data integrity checks

– 12 new Database checks

– 8 new Solaris system checks

Database Tier

ORAchk-Report-Example.html

11/14/2014

22

Page 23: Best practices for large oracle apps r12 implementations apps14

• ADRCI has multiple features such as

– Analyze diagnostic data within the Automatic Diagnostic Repository (ADR).

– Create a package with incident / problem information for Oracle Support.

– Diagnostic data includes incident and problem descriptions, trace files, dumps, health monitor reports, alert log entries, and more.

– Run the Health Checks

– Helps in purging old diagnostics trace & dump files

– Simple to use a rich command set

Set correct ORACLE_HOME and just enter adrci

The utility starts and displays the following prompt: adrci>

Database Tier

11/14/2014

23

ADR Command Interpreter (ADRCI)

Page 24: Best practices for large oracle apps r12 implementations apps14

• At the ADRCI prompt, enter the following command: adrci> HELP

To get help for a specific ADRCI command: adrci> HELP command

• For example, to get help on the SHOW TRACEFILE command, enter the following: adrci> HELP SHOW TRACEFILE

adrci> set homepath diag/rdbms/orclbi/orclbi2 adrci> show homes ADR Homes: diag/rdbms/orclbi/orclbi2

• To view the alert log: 1. Start ADRCI in interactive mode, and ensure that the homepath points to the correct directory within the ADR base directory hierarchy.

Database Tier

11/14/2014

24

Page 25: Best practices for large oracle apps r12 implementations apps14

Useful MOS Articles

2. At the ADRCI prompt, enter the following command: SHOW ALERT

The following are variations on the SHOW ALERT command: SHOW ALERT -TAIL

SHOW ALERT -TAIL 50

SPOOL /tmp/MYALERT.LOG SHOW ALERT SPOOL OFF This outputs the alert log, without XML tags, to the file /tmp/MYALERT.LOG.

SHOW ALERT -P "MESSAGE_TEXT LIKE '%ORA-600%'"

Database Tier

11/14/2014

25

� 11G ADR DOCUMENTATION (Doc ID 445022.1)

� How to Invoke ADR Command Interpreter (adrci) in FMW home? (Doc ID 1669923.1)

Page 26: Best practices for large oracle apps r12 implementations apps14

Database Tier#!/bin/ksh# # Author: Ajith Narayanan## http://oracledbascriptsfromajith.blogspot.com## Version 1.0## This callout script is extended to report/mail the affected weblogic services when any Oracle cluster event occurs.##umask 022FAN_LOGFILE=$ORACLE_HOME/racg/usrco/`hostname`_uptime.logEVENTLINE=$ORACLE_HOME/racg/usrco/`hostname`_eventline.logEVENTLINE_MID=$ORACLE_HOME/racg/usrco/`hostname`_eventline_mid.logMAIL_CONT=$ORACLE_HOME/racg/usrco/`hostname`_mail.logWEBLOGIC_DS=$ORACLE_HOME/racg/usrco/weblogic_dsecho $* "reported="`date` >> $FAN_LOGFILE &tail -1 $FAN_LOGFILE > $EVENTLINEawk '{for (f = 1; f <= NF; f++) { a[NR, f] = $f } } NF > nf { nf = NF } END {for (f = 1; f <= nf; f++) { for (r = 1; r <= NR; r++) { printf a[r, f] (r==NR ? RS : FS) } }}' $EVENTLINE > $EVENTLINE_MIDSER=`grep "service=" $EVENTLINE_MID|awk -F= '{print $2}'`DB=`grep "database=" $EVENTLINE_MID|awk -F= '{print $2}'`INST=`grep "instance=" $EVENTLINE_MID|awk -F= '{print $2}'`HOST=`grep "host=" $EVENTLINE_MID|awk -F= '{print $2}'`STAT=`grep "status=" $EVENTLINE_MID|awk -F= '{print $2}'`if [ "$SER" != " " | "$DB" != " " | "$INST" != " " | "$HOST" != " " | "$STAT" != " " ]; thenif [ $STAT = nodedown ]; thencat $EVENTLINE_MID > $MAIL_CONT

11/14/2014

26

Cluster callout scripts. – Quickly get alerted on any cluster events.

Page 27: Best practices for large oracle apps r12 implementations apps14

echo "**============================SERVICES AFFECTED===============================**" >> $MAIL_CONTgrep -i "$DB_" $WEBLOGIC_DS >> $MAIL_CONTelif [ $STAT = up ]; thencat $EVENTLINE_MID > $MAIL_CONTecho "**============================SERVICES RESTORED===============================**" >> $MAIL_CONTgrep -i "$DB_" $WEBLOGIC_DS|grep "SERVICE_NAME=$SER" >> $MAIL_CONTelsecat $EVENTLINE_MID > $MAIL_CONTecho "**============================SERVICES AFFECTED===============================**" >> $MAIL_CONTgrep -i "$DB_" $WEBLOGIC_DS|grep "SERVICE_NAME=$SER" >> $MAIL_CONT#ficat $MAIL_CONT| /bin/mail -s "Cluster $STAT event: $DB $INST $SER $HOST" [email protected]#cat $MAIL_CONT| /bin/mail -s "Cluster $STAT event: $DB $INST $SER $HOST" [email protected] $EVENTLINE $EVENTLINE_MID $MAIL_CONT

Database Tier

11/14/2014

27

Page 28: Best practices for large oracle apps r12 implementations apps14

Looking At Issues Proactively & From Greater Heights

11/14/2014

28

Page 29: Best practices for large oracle apps r12 implementations apps14

References

• My Oracle Support

• Steven Chan’s blog (https://blogs.oracle.com/stevenChan)

11/14/2014

29

Page 30: Best practices for large oracle apps r12 implementations apps14

Q&A

11/14/2014

30

Page 31: Best practices for large oracle apps r12 implementations apps14

11/14/2014

31

Thank You!

Page 32: Best practices for large oracle apps r12 implementations apps14