Patch is a program (set of instructions) to fix a particular problem or enhance/ add a particular feature in existing program/product/software. 

When ever applying an application patch, always must should follow the Readme.txt or Readme.html file moreover it is always advised to first test the patches on Test Environment, then go for production Environment.

Step 1: Download the patch to your pc and transfer it to Linux server

login to oracle metalink. (
Select the patches option then select the search type.
Search 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 transfer it to Linux server by using Winscp or any other software.


Here, you can download the patch and put in any directory.
Unzip the patch.
But while running adpatch it will ask like below path where we need to provide the patch location:
Enter the directory where your Oracle Applications patch has been unloaded
The default directory is [/proxy/ebs/uat01/apps/apps_st/appl/ad/12.0.0/bin] : /<patch directory>

Note: To run the adadmin we need to go adadmin directory. If you are not sure ten you can use below command as:

which adadmin

Same way if you want to run adpatch then we need to go adpatch directory. If you are not sure then you can use below command as:

which adpatch

In below example, we are putting patches in same location at adpatch.

Step 2: Unzip the patch. And set the permission

$chmod 755 9501440

Step 3: Before applying a patch you must check whether the patch is already applied or not and check for number/list of invalid objects.

For this we query the database :

[root@r12 ~]# su – oracle
$ sqlplus apps/*****
SQL>select * from AD_BUGS where bug_number='<patch number>’;

For Example:

SQL>select * from AD_BUGS where bug_number=’9501440′;
no rows selected

Check for INVALID objects :

SQL>Select count(*) from dba_objects where status=’INVALID’;
SQL> select owner,OBJECT_NAME,OBJECT_TYPE,STATUS from dba_objects where STATUS=’INVALID’;

Step 4: Run the environment variable for application on Application Tier.

$ cd /opt/oracle/VIS/apps/apps_st/appl/
$. ./APPSVIS_r12.env

Step 5: Stop the application with utility. We are stopping applications because we are not using Hot Patch.

(Please NoteDatabase and Listener should be up)


$./ apps/*****

Step 6: Enable the Maintenance Mode

* Provide patch log file name as:
Filename [admin.log]patchnumber.log
* Batchsize leav it as default, hit enter.
Batchsize [1000]:

* Enter the password for SYSTEM, and then apps password.
By Default System and Apps password is as shown below:

Enter the password for your ‘SYSTEM’ ORACLE schema: manager
Enter the ORACLE password of Application Object Library [APPS]: apps

1. Generate Applications Files menu
2. Maintain Applications Files menu
3. Compile/Reload Applications Database Entities menu
4. Maintain Applications Database Entities menu
5. Change Maintenance Mode
6. Exit AD Administration

Select an option 5 and press enter key to Change Maintenance Mode.
* Then, Select an option 1 and press enter to Enable Maintenance Mode.
* Press enter to continue.
Select option 3 and press Enter key to return to main menu .
* Press enter to Exit AD Administration

Step 7: Run autopatch (adpatch) from the patch directory by entering the following command:

ls -l adpatch
-rwxrwxrwx 1 oracle oinstall 9380 Mar 31  2009 adpatch

After applying successfully patch disable the Maintenance mode as below.

Step 8: Disabling maintenance mode.

The disabling steps are just same as enabling maintenance mode as shown above steps only the thing is you have to select 2 options to Disable maintenance Mode.
After running

./adadmin read carefully options and choose as 5->2->3->6.

5–> Change maintenance mode.
2–> Disable  maintenance mode.
3–> Return to Main Menu.
6–> Exit AD Administration.

Step 9: After disabling the Maintenance Mode, we need to start the services.

$./ apps/<apps_pwd>

After checking all the services from backend like:

$ps –ef|grep applmgr |wc –l
$ps –ef|grep FNDLIBR
$ps –ef|grep FND*

Once all the services are UP and Running.

Step 10: Check for Number of Invalid Objects from below command:

SQL>Select count(*) from dba_objects where status=’INVALID’;
SQL> select owner,OBJECT_NAME,OBJECT_TYPE,STATUS from dba_objects where STATUS=’INVALID’;

If there is any new invalid objects then need to recompile.
Then does the front-end sanity check such as checking all the Concurrent Manager’s status and Submit a request.
Hope this is useful and helpful. I really appreciate if anybody can suggest better points.
Please let us know for any concerns @ Contact Us :

Quick Check or High level patching steps in R12.1.3

1.   Careful during download the patch about the version i.e. R12.1.3 or R12.2
2.   Readme.html carefully.
3.   Check for any Pre-req patches.
4.   Check the correct hostname or server.
5.   Check the patch is applied or not.
6.   Check for Pre-Invalid Objects.
7.   Down the services if mentioned in Readme.html
8.   Enable the Maintenance mode.
9.   Apply the patch.
10.  Check the patch is applied or not.
11.   Disable the Maintenance mode.
12.   Start the services
13.   Check for Post-Invalid Objects.
14.   Release the instance




Tags: , , , ,

Leave a Reply