PATCHING
*is one of the most frequent task undertaken by APPS DBA.
*adpatch is the utility called autopatch which is used for patching process.

NEED OF PATCHING
*To upgrade to higher version
*To fix an issue
*To add a new feature

What are various types of Oracle Apps Patch ?

These are major classification of oracle apps patch

*Standalone/Oneoff patches: This is used to define patch created to fix single/particular problem.

*Mini Pack: This is group of oneoff patches for a particular product like INV, GL, AP and named like
11i.GL.E ( means this group of patches contain fix for 11i GL product (General Ledger till time E is released )
This is cummutative which means it will include 11i.GL.A, 11i.GL.B ....11iGL.D till 11i.GL.E earlier in 10.7 it
used to called as patchset.

*Family Pack Group of mini packs in one family buldeled together is called as family pack. they are usually named as 11i_PF. Few example of falilies are SCM ( 11i.SCM_PF.G ), ATG ( 11i.ATG_PF.H ) _PF indicate Product Family Pack
Maintenance Pack Group of family pack together is called as maintenance pack. So if you say your Verison is 11.5.10 then its maintenance pack 10 ( 3rd digit is maintenance pack )

PATCH FILE STRUCTURE
*Any patch is recognized by its number and is the topmost directory.
*Important sub directories are README.txt and README.html and driver files.

PATCH DRIVERS
*C driver:Copy Driver
*D driveratabase Driver
*G driver:Generate Driver
*U driver:Unified Driver

C DRIVER
*Copies the files from the patch to $APPL_TOP
*Extracts the appropriate files from each product's library
*Relinks the Oracle Application Products
*Regenerates the JAR files and compiles the Java Server Pages(JSP) files

D DRIVER
*Makes the list of all the Invalids objects in the database
*Runs SQL scripts, whick make changes to the database objects
*Compiles all the invalid objects that are there in the database.

G DRIVER
*Regenerates all forms, reports and PL/SQL libraries that have been affected by the patch.

U Driver
*This is the combination of c,d and g driver. The action of all the drivers is performed by u driver

Q. How to find Apps Patchset level in 11i ?

You can use shell script developed called patchsets.sh. Download it from
ftp://oracle-ftp.oracle.com/apps/pat...L/patchsets.sh
Usage: patchsets.sh connect=apps/pw [htmlout=file_name]
Typical Output : Applied Patchsets that Match ARU:
APPLIED PATCHSETS
Prod Patchset Bug RELEASED Release Status Distribution
=================================================
abm 11i.ABM.D 1741310 31-MAY-01 Patchset Superseded By_Dev
ad 11i.AD.A 1351004 07-OCT-00 Patchset Superseded By_Metalink
ad 11i.AD.C 1475426 19-JAN-01 Patchset Superseded By_Metalink

To know more about this utility check Metalink Note # 139684.1 Oracle Applications Current Patchset Comparison Utility - patchsets.sh

Q.How to find Apps Version in 11i ?

Run following SQL from apps user ;
SQL> select RELEASE_NAME from fnd_product_groups;
You should see output like
RELEASE_NAME
-----------------------
11.5.10.2
Which means you are on Apps Version 11.5.10.2

Q. How to check if a patch is applied or not ?

Patch information in 11i is stored in AD_BUGS & AD_APPLIED_PATCHES table . You can query like

SQL> select bug_number from AD_BUGS where bug_number ='&patch_no';

Alternatively you can check patch information from OAM (Oracle Application Manager).

Q. Where to find adpatch log files ?

Patch log files will be in directory $APPL_TOP/admin/$SID/log
like adpatchXXX.log ( file name you mentioned while patching ), adworkXXX.log for worker log files,