Tuesday, April 1, 2014

Rolling back an EPM oPatch

Oracle EPM oPatches or simply oPathes are supposed to fix bugs or issues. So, for example, if there are any defects in your existing version of EPM, Oracle suggests you apply certain patch so that the issue will be resolved. However, not all issues are guaranteed to be resolved, and while fixing some, it you may come up with new issues. For example, we recently applied the EPM 600 patch (Planning patch 14464109) which was supposed to fix the Internet Explorer 9 - related issue that we faced with EPM 11.1.2.1. This patch has a lot of pre-requisite patches, one of which is the patch 13904635. Therefore, we applied all the pre-requisite patches including the 13904635 and ultimately the main 14464109 patch. The IE9 related issue was fixed, however, the overall process damaged something else.

We had a Business Rules issue after the application of the patch where we would get an error every time we clicked "Business Rules" in EAS. The error message was 
"org/apache/xerces/parsers/DOMParser"

After some research, we found out that the patch 13904635 was the culprit. We decided to get patch 13904635 rolled back, so we went through the Rollback section of the README.

The following is the rollback syntax that is provided in the README
opatch.bat rollback –id 13904635 -oh D:\Oracle\Middleware\EPMSystem11R1 -jre D:\Oracle\Middleware/jdk160_21.

So, I opened the command prompt, got in to the oPatch folder and ran the script, however, I got a syntax error.
After putting up the question in Oracle Forum, one of the Aces - Celvin suggested me type in 

opatch.bat rollback -id 13904635 -oh D:\Oracle\Middleware\EPMSystem11R1 -jdk D:\Oracle\Middleware\jdk160_21

and it worked perfectly for me

The syntax looks exactly the same except for one slight difference "jdk" and "jre" and the "\". JRE works, as suggested by experts and so do JDK in this case. However, JDK worked for me.

So if someone is trying roll back a patch, make sure to try different syntax instead of just sticking with Oracle's README. I am not sure why, but they have some significant TYPOS that can get you nuts.


No comments: