Kevin Kempf's Blog

August 17, 2009

11i Patch Merging

Filed under: Oracle, Utilities — Tags: , , — kkempf @ 12:59 pm

Twice a year before regression test cycles, I spend an inordinate amount of time researching the latest round of patches and their pre-requisites. I know there’s got to be a better way, but in my experience I just don’t trust Oracle’s automated methods completely.

As an example, just last week, I was re-applying an interoperability patch for native java (6863618) because I couldn’t recall if I’d applied it in a particular environment. I went into OAM under maintenance and punched in the patch number, it came back with no rows. Fair enough, I applied the patch. Queried OAM again – came back with no rows. Hence my lack of trust…

Regardless, life is simpler with patch merging, known on the command line as admrgpch.

Once I figure out logical groups for patching (for example, Inventory, WIP, etc) I put them into the same staging directory, and merge them. This way, when I have to run this in production, I don’t have to run 12 patches to complete one patch and its 11 pre-requisites. The basic syntax is as follows:

admrgpch -s /scratch/patches11i/test/Fall09_Regression/Functional/INV_RUP4 -d /scratch/patches11i/test/Fall09_Regression/Functional/INV_RUP4/merge -merge_name INV_RUP4_merge_Fall09

The -s is the source directory, where all the patches have been staged and unzipped. The -d directory is the destination, which I just make a subdirectory of the staging directory. The merge_name is just what it will ulitmately call the universal driver (in this case, u_INV_RUP4_merge_Fall09.drv). Regardless, this is a much more efficient way of bundling patches and I strongly recommend it if you’re not using it.

As I wrote about the universal driver, I had a weird recollection of the hell that was patching before universal drivers. Anybody remember the 3 types of patch drivers, for 10 geek points?

They were copy drivers, database drivers, and generate drivers. Copy did the binary copies & relinks, database ran the sql/plsql/java against the RDBMS, and generate rebuilt/compiled the plls, forms and reports. Those were the slow old days….

Create a free website or blog at