Reducing Patch Timing Contd…

Yesterday we looked at how to use default file so that you can reduce repetative questions asked in adpatch session each time its initiated like APPL_TOP, ORACLE_HOME confirmation. Lets check what else you can do to reduce patch time ( All these tricks & tips to reduce patch time is useful if you are applying lots of patches may be five or more )

With lot of patches adpatch compile database objects & compile JSP’s in end so if you are applying 10 patches & out of those six patches execute compile database in end so adpatch will compile database six time which is waste of resource in terms of time. If you instruct adpatch not to compile of JSP & Database objects & do it in last manually this will reduce lot of your patch timing . So lets see how to do it .

If you are not clear with patch basics here are my previous posts
Apps Patch Basics
Apps Patch Basics Part II
How to Apply Apps Patch using ADPATCH

Yesterday I told that you can use defaults file like

adpatch defaultsfile=$APPL_TOP/admin/$SID/defaults.txt logfile=654321.log patchtop=/patches/654321 driver=u654321.drv interactive=no

so if you don’t want adpatch to compile database & jsp with each execution of adpatch you can use options nocompiledb & nocompilejsp

adpatch defaultsfile=$APPL_TOP/admin/$SID/defaults.txt options=nocompilejsp,nocompiledb logfile=654321.log patchtop=/patches/654321 driver=u654321.drv interactive=no

Once your patching is complete and you have applied all patches you can compile jsp & database once.

How to compile database objetcs ?
Use adadmin compile database option else
Use utlrp.sql script on database tier at $ORACLE_HOME/rdbms/admin

How to compile JSP in Apps ?
Use perl script under $JTF_TOP/admin/scripts like
perl –compile

Merge Patches to reduce patch timing
Another option to reduce patch timing is to use ad tool admrgpch, so lets say you have 10 patches to apply you can merge 10 patches & create single patch and apply that single patch. ( Sometime applying patches after merging may fail because of conflict in driver file so check first on test server)

create a directory lets say source_directory & put all patches which you want to merge in that & create another directory where your final single patch will come lets say destination_directory then use

admrgpch source_directory destination_directory
If there is any error in merging patch by default it will be in directory from where you are initiating admrgpch by name admrgpch.log
Apply patch from target directory via normal adpatch way.

If you are Upgrading your apps instance lets say from 11.5.8 or 11.5.9 to 11.5.10 you can use stagged APPL_TOP (ddifferent from shared APPL_TOP)
More on stagged APPL_TOP coming in near future ….

Share This Post with Your Friends over Social Media!

About the Author Atul Kumar

Oracle ACE, Author, Speaker and Founder of K21 Technologies & K21 Academy : Specialising in Design, Implement, and Trainings.

follow me on:

Leave a Comment:

Anonymous says September 26, 2006

Hi Atul,

Thanks for the info.Just want to know this. Is there any way (apart from using defaults file) to hide the password for system and apps being printed while applying patch.

Appreciate your efforts here.Keep up the good work. And please do write more on RMAN.

Atul Kumar says September 27, 2006

Apps & system password are now a days stored in obfuscated format in log files . You might be using old version. Whats ur apps version.


Anonymous says September 27, 2006

Hi Atul,


Atul Kumar says September 27, 2006

Nice Q’s, You need to uzip them and put entire patch directory ( for all patches you want to merge) in to source directory .


Anonymous says September 28, 2006


In reply to your question “Hi,
Apps & system password are now a days stored in obfuscated format in log files . You might be using old version. Whats ur apps version.”… Just to be more clear with my question, while applying adpatch, it asks for system and apps password. When I type in the passwords, it displays them. I want to suppress the display of passwords while applying adpatch and not in the log file (yes in the log file it is obfuscated)

Atul Kumar says September 28, 2006

Apologies for Misunderstanding,
As far as I am aware I don’t the way to obfuscate password in any of ad utilities on screen. I’ll try to find answer & update here or on my blog.

I have to answer on what’s meaning of Y in FNDCPASS or FNDLOAD utilities.


Murali says September 28, 2006

to hide password use

adpatch flags=hidepw
Note: it is flags not options

Also you mention that avoid compiledb which in my opinion is wrong, forms libraries/reports are dependant on plsql objects if the objects are not valid then forms compilation takes time since it has to attempt to compile the object then.

To reduce Downtime
1. Increase Batch Size Parameter during adpatch
2. Increase ADJREMX and ADJRIMX Parameters to minimum 1 Gig so XML Uploads happen faster
3. Set parallel_max_servers to 10 in init.ora parameter.

Atul Kumar says September 29, 2006

Thanks a lot for sharing this information with all.

Other parameters you suggested

1. Increase Batch Size Parameter during adpatch – Thats perfect.

2. Increase ADJREMX and ADJRIMX Parameters to minimum 1 Gig so XML Uploads happen faster – You need to see if you have additianl 1GB memory available on server .

3. Set parallel_max_servers to 10 in init.ora parameter.
I need to look into it how it can help in patching & how parallel max serevrs comes in to picture . Would you like to share more on this .

Atul Kumar says September 29, 2006

About nocompiledb , Its not that if you use nocompiledb your objects will becoem invalid . They will still be valid (Only thing is database will not specifically try to compile any invalid objects ) and I agree to some extent that if underlying objects is invalid then you need to compile that database object.

Wish to hear such comments more often & I urge other readers as well to comment in case you think otherwise on any topic or want to add somthing which might be useful for others.


Murali says October 2, 2006

parallel_max_servers helps in how many threads the Upgrades happen, if you look at the Timing Report in your Development environment you can identify top time consumting jobs usually which are INV, ONT, AP, AR, GL and WF whic have tons of records. parallel_max_threshold parameter in adpatch is dependant on this.

also to reduce patching downtime for NLS Patches refer

Atul Kumar says October 3, 2006

Thanks Murali,
I’ll wind up your suggestions together & update with your name soon in coming posts about patch timing.
Thanks once again for your inputs.


Anonymous says November 5, 2006

Hi Atul
Thanks for this great information ,i also wanted to know how do i find out if my patch will execute compiledb or compilejsp so that i can use the option nocompiledb or nocompilejsp.

Atul Kumar says November 5, 2006

Most of the patch execute compile db & compile jsp in end but its tough to say . You can open patch & try to read drv file .


Anonymous says November 6, 2006

Thanx Atul for reply

Anonymous says December 26, 2006

Can we merge any/all the patches??? suppose we have patches for diff products or we have diff family packs. can we use admrgpch option to merge these patches together? If no, why?


Atul Kumar says December 26, 2006

AD patchset is exception to merging rest all other patches you can merge.
Yes you can merge different family pack patches including prereq & post req except AD

Anonymous says December 28, 2006

thanks for replying. 1 more question is why cant we merge AD patches with any other patches?

Anonymous says January 9, 2007

can we know if we can merge pre reqs of a patch with it? if yes, how does admrgpch figure out the order of applying the patches?

Atul Kumar says January 9, 2007

Yes anonymous,
You can merge patch with its prereq. Patch is collection of file (shell script, sql, jsp….) and order of applying these files (called as task).The admerge merges steps in patch task list & adpatch picks them based on file version .

Dhilip Ranganathan says May 4, 2007

Hello Atul,

We are on and have applied ATG RUP 4 patches recently and we found that the system and apps passwords are not displayed anymore while running adpatch.

Dhilip Ranganathan.

Jagadish says March 11, 2012

Hi Atul,

Suppose i have created a merge patch with 10 no. Of patches. How to know in which sequence it is going to apply.


Add Your Reply