Basics of Patching in Oracle Apps (adpatch)


Whenever a patch request comes in the first and foremost thing which has to be done by an Oracle apps DBA is to look into existing system, if the patch exists. We can query ad_bugs.login to sqlplus with apps user and fire the below command.

SQL> select bug_number,creation_date from apps.ad_bugs where bug_number in (‘&bug_number’);


Enter the patch number and if you see any rows, it means the patch is in the system already and you can go ahead and tell the business that patch already exists. You will see something like this.

But if you see no rows returned, then you have to set the ball rolling. Now you will have to perform the patch analysis of requested patch.

The next step would be to login to Oracle support with your credentials and open the README of the patch, There would be a pre-requisite section which would state that if there is any prerequisite of this patch which has to be applied. Now if you see a prerequisite then you will have to open the REDAME of that patch and check the prerequisite of that patch and this process goes on till there is no prerequisite.

From my personal experience I would suggest to prepare a template like below to do the analysis of the patch.

Now lets understand the example given above, the main patch requested in 123456, this patch has a pre-requisite 67890 and 67890 has a pre-requisite 8585858 and this has a pre-requisite 8686868.

So to apply the main patch we have to

a) First apply 8686868 and
b) Then 8585858 and
c) Then 67890 and then the main patch.

So now you will send this analysis back to your business and you will request for the downtime. Now downtime is calculated on the basis of your experience.

I assume that you have received the confirmation from the business to apply the patch. Download the patch in your patch top directory and unzip the file. After unzipping you will see a driver file like u123456.drv. When you will run adpatch (in 12.1) from this location it will ask you the name of the driver file and you have to give u123456.drv.

Now something about file systems, There are basically two types

1)Shared file systems
2)Distributed file systems

In my environment, I have shared file system and there are multiple web nodes. So in case of shared file system patches have to be applied on one node only since it is shared file system.

So let us assume that we have 3 application nodes and Non RAC DB server and also the patch is available only in American English and there are no other languages installed on the application.

Steps for patching (EBS 12.1) would be

  • Shut down the application on all the 3 nodes by logging into each node separately.
  • From adadmin put the application into maintenance mode
  • Take the count of invalids by logging to sql plus with apps user
  • Use adpatch to apply patches to the application.


  • Again check the count of invalid objects in database and compare with pre-patch application invalid count.
  • From adadmin disable the maintenance mode
  • Start the application on all the 3 nodes

Please don’t forget that for any operation to take place in the app, DB has to be up and running.


Please note that before doing any kind of patching activity, ask the unix team to perform the backup of the file systems because we can’t roll back the patch applied using adpatch


We will discuss more about patching in my next blog. Any comments or queries then post here

Share This Post with Your Friends over Social Media!

About the Author Nitin

Leave a Comment:

Ralph says June 29, 2015

Why put the maintenance mode on when the application is shutdown / off ?

    Atul Kumar says June 29, 2015

    Yeah your question make sense however Patch utility expect application to be in maintenance mode (even though application is down).

Nitin says June 29, 2015

We can use the below commands from sqlplus to put the application in maintenance mode.
@$AD_TOP/patch/115/sql/adsetmmd.sql DISABLE
@$AD_TOP/patch/115/sql/adsetmmd.sql ENABLE

Jeg says June 30, 2015

If you are in R12, you can adpatch options=maintenancemode which will makes our life easier.

Add Your Reply