Re: ADPATCH: Does anybody aware what “load Package Revision Information” step is for?

By Metalinking :) I have found some answers to my questions:

====================================
Note:150964.1
ADPATCH Utility Has An OPTIONS=NOREVCACHE.
Will a Newer Version Of A Package Be Overwritten By An Older Version?

fix:
The filesystem-level version checking will not overwrite a newer version of the
file with an older version.  Using options=norevcache will cause the same
packages to be re-created at their current revision, not create a lower
revision of the packages.
====================================
What means that Oracle uses something like ident $<SCRIPT> command in
order to check if a Package creation files have to be overwritten.
Oracle recreates all packages that included in a patch you are trying to apply.
That means that if there are for example
    FND_LOG package delivered by a patch, then
    if you use a NOREVCACHE option and
    you have got the newer version of the package in the database

    ADPATCH will recreate package any way and
    almost all PL/SQL objects in the database will be invalidated
    It will makes you patch apply process 2-3 hours longer then it
would be in case of default REVCACHE option usage.

We need to be really selective with that option then.
As usual there isn't silver bullet ;)


==================================== Note:225165.1 Oracle Applications Release 11i Patching Best Practices and Reducing Downtime

options=        
    norevcache
Potential Savings       
    5-10 minutes        
Use When...
    Zero or only a few PL/SQL packages and views become uncompiled.
====================================
It is still unclear then Oracle decides then to load a pkg revision
inform from a database?
Presumably there is parameter or line in the patch driver file
indicating if adpatch need to do it.

Just my 0.02 £
Yury

On 5/18/06, Jurijs Veļikanovs <J.Velikanovs@xxxxxxxx> wrote:

Hello Community !

Question about ADPATCH.

Does any body aware what "load Package Revision Information" process is
for?
It is a phase in a patch apply process.
In our environment this step takes ~30 min.
Interesting that it isn't fared always.
ADPATCH loads packages revision data just for same patches.
I know that during that process Oracle reads packages' versions using SQL
like one below from a database and store this information in a files system
for a future use.
select owner,
       substr(text,instr(text,'$Header: '),
              ((instr(text,' $',instr(text,'$HEADER: ')) +2 )
                -instr(text,'$Header: '))
             )
    from dba_objects
    where line=2
        and text like '%$Header: % $%';
.
Data in the Files System called "Packages' revision cache".
I know that we can use "norevcache" option of adpatch for avoiding that
phase.
==================================================
    * revcache              - To load the package revision cache (if
                              adpatch
                              determines it is needed).
                              Default - revcache.
==================================================

Question is: Is it safe? What Oracle does in case "Packages' revision
cache" wasn't refreshed?
Does Oracle read version information from Packages' source files located
under $MOD_TOP/patch/115/sql/ directory or it uses old cache data?
Is there way to refresh it manually before a patch apply process in order
to minimize system unavailability time?
Where Oracle stores revision information?

You input would be more than appreciated!
Thank you in advance,
Yury





--
Yury
+44 7738 013090 (GMT)
============================================
http://otn.oracle.com/ocm/jvelikanovs.html

Other related posts: