APPS patching technique - the workflow
|
4460
2006-OCT-16 15:13:36
|
|
Moderator
|
|
|
Registered On: Mar 2006
Total Posts: 289
|
|
APPS patching technique - the workflow
Lets talk about a procedural technique -- how to efficiently apply APPS
patches.
My workflow starts with a request to apply a patch or a series of patches to
our test system. I immediately create a new "script" for this series of
patches by calling it:
001.txt
002.txt
...
00n.txt
... you get the idea ...
The script is just a step by step instructions of how to make each patch work
on our system. I usually follow this format:
- - - - - - - - - - APPS PATCH SCRIPT SAMPLE [002.txt] - - - - - - - - - - >
01 --------------------------
02 SERIES APPLIED TO:
03 OTST1 - 12-SEP-2006
04 OTST2 - 13-SEP-2006
05 OPROD - 13-SEP-2006
06 --------------------------
07
08 ## 4488851 (CONS11510.2CU.9:CREDT CHCK NOT WRKING WHEN CRDT .. )
09 ## Req: RAVI
10 ## p4488851_11i_GENERIC.zip
11 ##
12
13 [BE 2 min]
14 npatch.sh /copy/APPS_PATCHES/2006/002/4488851 4 yes yes
15
16 [MT 1 min]
17 npatch.sh /u01/app/applmgr/APPS_PATCHES/2006/002/4488851 2 yes yes
18
19
20 ## 5162862 (ROI Preprocessor Enhancement On Header ...)
21 ## Req: MADHUR
22 ## p5162862_11i_GENERIC.zip
23 ##
24
25 [BE 3 min]
26 npatch.sh /copy/APPS_PATCHES/2006/002/5162862 4 yes yes
27
28 [MT 1 min]
29 npatch.sh /u01/app/applmgr/APPS_PATCHES/2006/002/5162862 2 yes yes
30
< - - - - - - - - - - - APPS PATCH SCRIPT SAMPLE [002.txt] - - - - - - - - - -
Lets go over line by line of the above script:
01-06: the dates and SID names of where this series was applied to
08: a patch detail, it's number and description
09: the requestor of the patch
10: patch zip filename
13: BE stands for back-end (CM/ADMIN host) -- it took 2 minutes to apply
14: the command used to apply this patch (see npatch.sh description below)
16: MT stands for middle-tier (FORM/WEB host) -- it took 1 minute to apply
17: the command used to apply this patch
20-29: similar details for a second patch in the series (patch# 5162862)
I use a custom script called npatch.sh to apply majority of our patches. It's
very simple wrapper shell script that simplifies calling adpatch, here's what a
typical session looks like:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
genesis.applmgr->npatch.sh /copy/APPS_PATCHES/2006/002/5162862 4 yes yes
PATCHTOP=/copy/APPS_PATCHES/2006/002/5162862
WORKERS=4
INTERACTIVE=yes
HOTPATCH=yes
PATCH=5162862
DRIVER=u5162862.drv
DEFFILE=/u02/app/applmgr/11.5/admin/OTST2/def.txt
will call adpatch with the following:
adpatch defaultsfile=/u02/app/applmgr/11.5/admin/OTST2/def.txt \
logfile=all_5162862.log \
patchtop=/copy/APPS_PATCHES/2006/002/5162862 \
driver=u5162862.drv \
workers=4 \
interactive=yes \
options=novalidate,hotpatch
Do you want to call adpatch? Y or N:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
As you can see npatch.sh simply builds a call to adpatch then asks if you would
like to continue. There are couple of parameters that it takes:
genesis.applmgr->npatch.sh
--------------------------------------------------------------
WARNING:
this script is designed to run u<PATCH>.drv drivers ONLY!
to apply c,d,g drivers use rpatch.sh or bpatch.sh
--------------------------------------------------------------
USAGE:
npatch.sh <PATCH_DIR> <WORKERS> <INTERACTIVE> <HOTPATCH>
INTERACTIVE is an optional parameter [DEFAULT=no]
HOTPATCH is an optional parameter [DEFAULT=no]
EXAMPLE:
npatch.sh /u02/app/applmgr/11i_upgrade/2005/002/4057971 14 yes yes
in this example the driver will be:
/u02/app/applmgr/11i_upgrade/2005/002/4057971/u4057971.drv
--------------------------------------------------------------
CONCLUSION
-----------
By having a clear step-by-step instructions (script) for each series of patches
you can easily get back to a series of patches even if a project gets postponed
by few weeks or even months.