Patch is a program to fix a particular problem or enhance/add a particular feature in existing program/product/software.

In Oracle to apply database patch we use ‘opatch‘ ($ORACLE_HOME/OPatch) where as in order to apply applications patch we use ad utility ‘adpatch‘ ($AD_TOP/bin).

For Basic Apps patches terminology & other related details please refer to the following links:

http://onlineappsdba.com/index.php/2006/08/10/oracle-apps-patch-basics/
http://onlineappsdba.com/index.php/2006/08/11/oracle-apps-patch-basics-ii/

 Before going on steps for patching just a brief on Maintenance Mode, Maintenance Mode is mode of operation introduced with AD.I.2, in which the oracle application system is made accessible only for patching activities. Greatly improves performance by minimizing downtime.
If you wish to apply patch without putting applications in maintenance mode (for small patches) use options=hotpatch with adpatch.

Here I am explaining basic steps that are performed in patching :

STEP 1 :Before applying a patch you must check whether the patch is already there or not. For this we query the database:

*sqlplus apps/<apps password>@<tnsalias>   then
select * from AD_BUGS where bug_number=’<patch number>’

STEP 2 : Download the patch.

*login to oracle metalink.(www.metalink.oracle.com)
*Select the patches option then select the search type.
*Query for patch by writing the patch no. & platform on which you want to download the patch.
*Click download .

If you have downloaded the patch at desktop then move it to directory where you want it to unzip.

mv <patch.zip> <destination patch directory>
eg:  mv p4003579_linux.zip /u1/apps/patch

STEP 3 :Unzip the patch. For this
*log in as application tier user.
*Go to the directory where you have your patch directory & type command-   
unzip patch.zip

This will unzip the patch in current directory & will make the required patch directories & sub directories.

STEP 4 :Enable the Maintenance Mode.For This:

*Set the environment file located in APPL_TOP.
*Run the ad administration utility by typing adadmin on unix/linux console. It will ask questions related to admin utility with default answers in brackets.Then it shows following options & ask for the choice:

1.Generate applications file menu.
2.Maintain applications file menu.
3.Compile/Reload Applications Database Entities Menu.
4.Maintain Applications Database Entities Menu.
5.Change Maintenance Mode.
6.Exit ad Administration.

Select option 5. The status of maintenance mode is displayed at the top of change maintenance mode menu.Again it will show following options & ask for choice:

1.Enable Maintenance mode.
2.Disable Maintenance mode.
3.Return to Main Menu.

Select option 1. Then return to console.

STEP 5: Run autopatch from the patch directory by entering the following command:

$ adpatch

After this answer the questions of autopatch. As autopatch finishes its tasks, it writes timing information to the AD timing report for jobs running in parallel (if any ) and reminds you to run the log files for any errors.

If you don’t see the “autopatch is complete” message at the end of the Autopatch log file, Autopatch did not complete successfully.

The most important step after autopatch completes is to check the log files for any errors that may occurred during the patching process. Check the main Autopatch log file first,then additional log files as necessary.

The default name of main autopatch log file is adpatch.log .The file is located in

$APPL_TOP/admin/<SID>/logQuestion for readers :
What is lgi file in log location (above directory)