Oracle EBS Patching Automation

Throughout my experience working with the Oracle EBusiness Suite, I’ve consistently encountered a challenge – the absence of a comprehensive tool for automating patching tasks. This prompted me to embark on a quest for suitable scripts within the vast realm of the internet and the Oracle community. Although I didn’t stumble upon a fully functional automation tool, I found inspiration in a multitude of blog posts and discussions, which ultimately fueled the creation of an in-house solution. I would like to express my gratitude to Erman Arslan’s Oracle Blog and Maris Elsins for their prior contributions, as they served as the cornerstone for my own efforts.

This custom tool is tailor-made for Oracle EBusiness Suite R12.2.x, specifically designed to operate seamlessly on the Linux X86_64 platform. Its capabilities extend to facilitating the download and application of patches for EBS R12.2.x, offering compatibility with both single-node and multi-node architectures.

You can find more details in my github repository https://github.com/indseal/Oracle-EBusiness-Suite-R12.2-Patching-Automation.

Main Script: ebs_apps_patch.sh

Other software required: getMOSPatch.jar (You can download it from https://github.com/MarisElsins/getMOSPatch)

JDK software: jdk1.7.0_301 ( you can download any jdk software for this)

Few important points:

1. Under the function download_patch, update the MOSUser and MOSPass as well as the Platform/Patch (platform=226P,3L) to your respective environment.

2. Under the main section, update the environment run file path, PATCH_TOP_DIR(in case you are staging the scripts in a separate location)

Finally, also update the apps, system and weblogic passwords.

Below is sequence of steps to download and apply EBS R12.2 patch through this tool.

Step 1: Check ADOP Status to confirm if there is any running patch cycle

sh ebs_apps_patch.sh adop_status

Step 2: Start a prepare phase

sh ebs_apps_patch.sh prep_phase

Step 3. Download patches & copy patches to $PATCH_TOP

sh ebs_apps_patch.sh download_patch <PATCH_ID>

(After download, copy the patches to $PATCH_TOP manually and make sure to unzip them prior to apply phase)

Step 4. Apply phase

sh ebs_apps_patch.sh apply_phase [patch number]

sh ebs_apps_patch.sh NLS_apply_phase [patch number]

(In case of NLS languages other than American English,you need to download and apply both American english and the NLS language patches)

Step 5: Check patch applied

sh ebs_apps_patch.sh check_patch_applied [patch number]

Step 6: Finalize, cutover & cleanup(combined into one single step)

sh ebs_apps_patch.sh cutover_phase

Step 7: Finally, run fs_clone to sync run and patch file systems

sh ebs_apps_patch.sh fs_clone

(if fs_clone has failed for any reason, we need to fix the issue and may need to trigger fs_clone with force option. In that case, use the command – 

sh ebs_apps_patch.sh fs_clone_force)

Step 8: Check ADOP Status 

sh ebs_apps_patch.sh adop_status

At times, there is a requirement to run an empty patch cycle to check if cutover is working. For that, you can run below command

sh ebs_apps_patch.sh full_phase

In case you don’t want to use the script, you can still save time by this one line codes:
 Start the prepare phase
{ echo appspwd ; echo systempwd; echo weblogicpwd ; } | adop phase=prepare
Start the apply phase
{ echo appspwd ; echo systempwd; echo weblogicpwd ; } | adop phase=apply
patches=<patch3>,<patch2>,<patch3>
For NLS:
{ echo appspwd ; echo systempwd; echo weblogicpwd ; } | adop phase=apply
patches=<patchid>_FRC:u<patchid>.drv
Start the cutover phase
{ echo appspwd ; echo systempwd; echo weblogicpwd ; } | adop phase=finalize,cutover
Execute cleanup
{ echo appspwd ; echo systempwd; echo weblogicpwd ; } | adop phase=cleanup
Start the fs_clone
{ echo appspwd ; echo systempwd; echo weblogicpwd ; } | adop phase=fs_clone

Happy patching !!

Published by Indraneil Seal

I originally hail from Kolkata, India, and I've dedicated a significant portion of my professional journey to both India and the United States before relocating to Canada during the pandemic. I’m a member of MongoDB's esteemed Technical Services team. Before joining this exceptional group, I held the role of Senior Apps DBA at the Government of Ontario. Prior to that, I spent many years honing my technical(DBA/Cloud) and soft skills with TCS, KBACE Technologies(which later got acquired by Cognizant Technology Solutions) and Oracle Corporation. Throughout my career, I was deeply immersed in day-to-day operations and spearheaded significant projects, including the modernization of platforms, Oracle application and database upgrades. In my last stint at the Government of Ontario, I was also responsible for overseeing various automation initiatives including out-of-place patching, automated EBS Application patching. Outside of my professional life, I have a strong passion for reading, blogging, spending quality time with my family, and my feline buddies, Smokey & Louis. I also relish solitary walks and jogging as personal interests. As a proponent of open source technologies, I'm looking forward to sharing my knowledge and expertise as well as contribute as much as possible to the success of the IT fraternity thereby perpetually expanding my skillset.

Leave a comment