Saturday, August 30, 2008

Overview of Using ORADEBUG Command

1. ORADEBUG command is used to diagnose the Database Hanging Issues

2. All the ORADEBUG should be executed as sysdba


3. We can use the following command to list the commands available in ORADEBUG

SQL> ORADEBUG HELP

4. We can use the following command to analyze the system hang, oradebug hanganalyze

1-2 - Only HANGANALYZE output, no process dump at all

3 - Level 2 + Dump only processes thought to be in a hang (IN_HANG state)

4 - Level 3 + Dump leaf nodes (blockers) in wait chains (LEAF,LEAF_NW,IGN_DMP state)

5 - Level 4 + Dump all processes involved in wait chains (NLEAF state)

10 - Dump all processes (IGN state)

Example

To perform cluster wide HANGANALYZE use the following syntax:

ORADEBUG setmypid
ORADEBUG setinst all
ORADEBUG -g def hanganalyze

5. The command we can use to stop the ORADEBUG is

SQL> ORADEBUG suspend

6. The command we can use to get the trace file name is

SQL> ORADEBUG tracefile_name

Oracle E-Business Suite R12.1

Oracle E-Business Suite R12.1 release likely to announced sometime by Sept’08 Oracle Open World Event.

There are 15 Release Content Documents available as of now and listed below,


Applications Technology

Asset Lifecycle Management

Financials


Human Resources

Logistics

Manufacturing

Marketing and Sales

Master Data Management

Order Management & Contracts

Procurement

Projects

Service

Supply Chain Planning

Financial Services

Aerospace, Defense, and Transportation

Ref Note # 561580.1: E-Business Suite Release 12.1: Release Content Documents

Friday, August 22, 2008

Oracle EBS 12 is now Certified with Redhat 5 and Oracle Enterprise Linux 5

Oracle EBS 12 is now certified with Red Hat Enterprise Linux 5 and Oracle Enterprise Linux 5
Check metalink note: 402310.1 for 32-bit and note: 416305.1 for 64-bit OS

Monday, August 18, 2008

How to find Apps OUI version in EBS

We can find the version of the Oracle Universal Installer through the following,

Navigate to $IAS_ORACLE_HOME/appsoui/oui,

It will display a file named oraparam.ini and the contents will be look like the following,
~
DISTRIBUTION=FALSE
SOURCE=
LICENSE_LOCATION=
JRE_LOCATION=../jre/1.3.1/jre OUI_LOCATION=.
DEFAULT_HOME_LOCATION=
DEFAULT_HOME_NAME=
NLS_ENABLED=TRUE
JRE_MEMORY_OPTIONS=" -mx48m"
NO_BROWSE=/net
BOOTSTRAP=FALSE OUI_VERSION=2.2.0.19.0
~
In the above at last we will be able to locate the version of the Oracle Universal Installer from the parameter OUI_VERSION.

In the above case the version is 2.2.0.19.0.

Oracle Applications Framework and Rollup Version Using OAInfo.jsp

Provide the following URL in the browser:

http://[host%20name].[domain%20name]:[portnumber]/OA_HTML/OAInfo.jsp

This will provide the following information:

1. OA Framework version

2. Rollup patch version

3. JRE version

4. Java version

5. Operating System

6. Browser

7. System CLASSPATH

How To Recreate the /appsutil/scripts/ directory

1. On the Application Tier (as the APPLMGR user)

2. Log in to the APPL_TOP environment (source the environment file)

3. Create appsutil.zip file

4. perl /bin/admkappsutil.pl

5. This will create appsutil.zip in $APPL_TOP/admin/out .

6. On the Database Tier (as the ORACLE user):

7. Copy or FTP the appsutil.zip file to the RDBMS ORACLE_HOME

8. cd RDBMS_ORACLE_HOME

9. unzip -o appsutil.zip

10. Generate your Database Context File follow the steps below:
On UNIX cd . .env
cd /appsutil/bin perl adbldxml.pl tier=db appsuser= appspasswd=

11. On UNIX cd /appsutil/bin, run adconfig.sh contextfile= appspass= After running adconfig.sh contextfile= appspass= ,the scripts directory "/appsutil/scripts//" is created in appsutil directory.

12. After running adconfig.sh contextfile= appspass= ,the scripts directory "/appsutil/scripts//" is created in appsutil directory

Saturday, August 16, 2008

Troubleshooting Java Exception Stack Traces

1. Collect Exception Details:

NOTE: For OA Framework-based pages use FND Diagnostics and Apache logs. For others use any product-specific log files and Apache logs
Set Profile ‘FND: Diagnostics’ to ON. Reproduce the issue to get the Unexpected Exception page. Click the link in the text: "Click [here] for exception details." Save the whole page and review the Exception that starts with ‘### Detail 0 ###’ only. Set FND Diagnostics Debug logging on (either to-page or to-file) and check the ouput. See Note 290614.1 -How To Get Log Files In iProcurement, for steps. Get the Apache error_log and mod_jserv.log files and check for exceptions.


2. Analyze the Exception Stack Trace e.g: java.lang.NullPointerException
at java.lang.String.(String.java:188)at oracle.apps.icx.por.domain.ReqCustom.validateGLAccount(ReqCustom.java:574) -> this is the oracle code using this
at oracle.apps.icx.por.domain.ReqDistribution.customValidateAccount(ReqDistribution.java:2579) at oracle.apps.icx.por.domain.ReqDistribution.validate(ReqDistribution.java:2653) at oracle.apps.icx.por.domain.ReqLine.validateReqDistribution(ReqLine.java:3948) at oracle.apps.icx.por.domain.Requisition.validateReqDistribution(Requisition.java:571) at oracle.apps.icx.por.apps.CreateReq.validateDistribution(CreateReq.java:144) at oracle.apps.icx.por.apps.CreateReq.requisitionAction(CreateReq.java:130)

Key parts to understand:

NullPointerException is the Java Error name being raised. java.lang.String. is the core (JDK) Java Method which is raising the above error. validateGLAccount is the Oracle Method that is using the above core Java Method. ReqCustom.java:574 is the Oracle Class File Name and Line Number that is making the call to the validateGLAccount method. ReqDistribution.customValidateAccount is the Parent 'class.method' which is calling the above Method, and so forth down the list (child to parent).

3. Check for Similar Issues on Metalink:

Search on the functionality and the Java Error. Search on first and second Oracle Class and Method names. Match any hits to the functionality and the failing Line Numbers. Compare the file versions of any patches to those in the instance. Apply only those patches with later file versions, and on the same eBusiness Suite (eg. 11.5.10) and Procurement Family Pack (eg. FP.J) version. Always check the patch readme.txt for details. Use background functionality, exception details and debug logfile hints information, to check instance setups and transaction data, as needed.

4. Understand the Common Java Exceptions:

NullPointerException - Means a variable referred to in the code is not available (null). E.g. Profile Option may not be set. NoClassDefFoundError / NoSuchMethodError / IllegalAccessError - Java code file is missing, or invalid reference is used. OutOfMemoryException - The JVM cannot allocate more memory for use. Check server resources and AutoConfig and jserv.properties configuration. ClassCastException / NumberFormatException - Incorrect conversion of a data type (e.g. Character to Number) [StringArray]IndexOutOfBoundsException - Data being used exceeds the code structure being used for it. This commonly occurs from unexpected database results size.

Wednesday, August 13, 2008

Steps to Run Autoconfig On Database Tier (DB-Tier)

1. Please source the APPS environment
i. go to $APPL_TOP folder where APPS is installed (ie. /oracle/testappl)
ii. run file.
APPSORA.env or APPSSID_hostname.env
iii. check if the APPS environment was sourced: echo $ORACLE_HOME should return the path to 8.0.6 ORACLE_HOME (ie:/oracle/testora/8.0.6)

2. Please stop Middle(APPS) Tier:
i. Go to "/admin/scripts/" folder
ii. run adstpall.sh

3. Please source the RDBMS environment
i. go to your RDBMS ORACLE_HOME (a folder like: "oracle/testdb/9.2.0/")
ii. source the _.env file
iii. check that the RDBMS environment was sourcedecho $ORACLE_HOME (ie: "oracle/testdb/9.2.0")
iv. Note: when APPS environment is sourced, "echo $ORACLE_HOME" should return the 8.0.6ORACLE_HOME (ie: /oracle/testora/8.0.6)

4. Please run Autoconfig on DB-Tier
i. go to /appsutil/scripts/ folder
ii. run ADAUTOCFG.SH

5. Check the Autoconfig log file
i. AutoConfig log files are stored under:

Application Tier
/admin//log/

Database Tier
/appsutil/log//
ii. if you have errors (check for ERROR or FAIL words in the log files), solve it.


NOTE: it is very important to solve ALL errors from Autoconfig log files before going further inusing the other AD tools (ie: adpatch, adadmin, etc.) or executing any administrative tasks.

6. Close the current TELNET/SSH/command window and open a new one where you will source the NEW environment you need (this must be done in order not to preserve old values from the old sourced environment)

7. Please source the APPS environment
i. go to $APPL_TOP folder where APPS is installed (ie. /oracle/testappl)
ii. run file
. APPSORA.env or APPSSID_hostname.env
iii. check if the APPS environment was sourced:echo $ORACLE_HOMEshould return the patch to 8.0.6 ORACLE_HOME (ie:/oracle/testora/8.0.6)

8. Restart the Middle (APPS) Tier
i. Go to "/admin/scripts/" folder
ii. run adstrtal.sh

Steps to remove unneeded context files after cloning

1. Look at the $APPL_TOP/admin

Make sure there is only the Target Machine's machine *.xml present under: $APPL_TOP/admin/

2. Remove the source *.xml file if it is there

3. Then run the following from

SQL*Plus:

SQL> EXEC FND_CONC_CLONE.SETUP_CLEAN;COMMIT;EXIT;

4. Re-run AutoConfig on every tiers(DB Tier/s then on Apps Tier/s) to repopulate the required system tables.

5. Bounce the Applications Services

How to increase swap space in Linux

Sometimes we find that the swap partition we set up at install-time just isn't enough anymore. Maybe we're upgrading your system to RedHat 4.1 from a version of RedHat that used less swap in relation to physical RAM. Perhaps you're running Oracle or adding more memory and would like to increase swap space accordingly.

#free -m
total used free shared buffers cached
Mem: 3772 2201 1571 207 179 1541
-/+ buffers/cache: 480 3292
Swap: 2047 0 2047

#dd if=/dev/zero of=swapfile bs=1024 count=132207
132207+0 records in
132207+0 records out

# ls -l swap*

-rw-r--r-- 1 root root 135379968 May 19 19:06 swapfile

# chmod 600 swapfile

# /sbin/mkswap swapfile
Setting up swapspace version 1, size = 135372800 bytes

# /sbin/swapon swapfile
# free -m
total used free shared buffers cached
Mem: 3863260 2384072 1479188 212636 183964 1711140
-/+ buffers/cache: 488968 3374292
Swap: 2228636 0 2228636

As we see the swap has increased from 2047 to 2228636