Now that we’re well into 2017, let’s sit back and ask the question: “What was the best news of 2016 in the Oracle ecosystem?”
- The 12.2 beta ? (no, that was announced in October 2015 :))
- The fact that we now officially know that each PDB will have their own local UNDO ? (no, this was easy to guess)
- The fact that we will be able to flashback a PDB ? (nope. This, too, was easy to guess)
I’ll give you a clue. The best news was something that sneakily appeared between April and October 2016 in your patch maintenance logs :
[root@myclusterdb02 OPatch]# ./opatchauto apply /patches/OCT2016_bundle_patch/24436624/Database/184.108.40.206.0/220.127.116.11.161018DBBP/24448103 -oh /u01/app/oracle/product/18.104.22.168/dbhome_1 -ocmrf /u01/app/oracle/product/22.214.171.124/dbhome_1/OPatch/ocm/bin/ocm.rsp System initialization log file is /u01/app/oracle/product/126.96.36.199/dbhome_1/cfgtoollogs/opatchautodb/systemconfig2016-12-11_05-23-36PM.log. Session log file is /u01/app/oracle/product/188.8.131.52/dbhome_1/cfgtoollogs/opatchauto/opatchauto2016-12-11_05-24-09PM.log WARNING: the option -ocmrf is deprecated and no longer needed. OPatch no longer checks for OCM configuration. It will be removed in a future release.
The interesting part is in that 4th line :
WARNING: the option -ocmrf is deprecated and no longer needed. OPatch no longer checks for OCM configuration. It will be removed in a future release.
This is awesome! We no longer need this annoying ocm.rsp file !
When I discovered this back in November 2016, I searched for an official feature announcement but found nothing (it looks like an opatch 13c new feature backported in 11g and 12c). This ocm.rsp file was still needed when I applied the April 2016 PSU, but from which opatch version was it implemented?
First, I looked at the 2016 dev comments in opatch 184.108.40.206.15 and 220.127.116.11.7 (which were the last version when I was applying this Exadata October 2016 PSU) and I sadly discovered that no specific comments were talking about this new feature (even if it would obviously deserve some):
# opatch 04/08/16 Update CAS_VERSION to 18.104.22.168.3 # opatch 04/11/16 Consolidate all 4 opatch scripts # opatch 06/07/16 Calling auto_patch.pl using the perl from Oracle Home Location # opatch 06/30/16 bug 23721730 - default memory was too high for 32 bit so removed and disabled opatch_env.sh script call
After a quick look at the code, I found the amazing piece of code that would ease our lives in the future (the function is named ocmOptionDetect()):
# Option 'ocmrf' is deprecated in OPatch 13.3 - Detect and give warning message if [ "$OCMRF_OPTION" = "1" ] && [ "$VERSION_13_X" = "1" ]; then echo "WARNING: the option \"-ocmrf\" is deprecated and no longer needed. OPatch no longer checks for OCM configuration. It will be removed in a future release."
I then performed a few greps in different opatch versions that I had and I found that this feature has been implemented in:
- 22.214.171.124.13 or 126.96.36.199.14 for 11g (I was unable to find any of these versions so I couldn’t check)
- Between versions 188.8.131.52.10 and 184.108.40.206.7 for 12c (again, I was unable to find any of these versions so I couldn’t check)
If you come across any of the opatch versions specified above, please “grep -i ocmrf opatch” it and let me know so I can find when this feature has been implemented.
You can now upgrade all your opatches to become ocm.rsp-free and this (for me) was definitely the best new of 2016!