Recently I was installing Oracle BI Apps on a VM for a custom training, as mentioned in a previous post. I setup the VM with Windows Server 2012 after verifying in the certification matrix that the Oracle BI Apps version (126.96.36.199.2) was certified to run on Windows Server 2012.
As I was going along, I was getting errors during some of the installs on the pre-requisite checks for the operating system (OS), as can be the case when the OS gets certified after the initial release of that version of software. The workaround is available for that error in MOS Doc ID 1577652.1, and involves adding the OS to an .xml file… Okay, I admit it. I didn’t actually update the .xml file. I just clicked Continue past the pre-requisite check. Since there didn’t seem to be any repercussions and the installs completed successfully, I continued on my merry way through the installation instructions.
When I was running OBIEE’s configuration (config.bat), it failed at 35% on the step Setting Up BI Publisher. The install_DATE_TIME.log file didn’t have enough information, so I dug into the install_DATE_TIME.out file. In it, there was the following error:
updateBIPConfigFiles: OSError: (0, 'Failed to execute command ([\'sh\', \'-c\', \'java -classpath C:\\\\Oracle\\\\Product\\\\BI_11.1\\\\Oracle_BI1\\\\clients\\\\bipublisher\\\\xdo-server.jar oracle.xdo.install.UpdateConfigFiles 9704 9703 9710 jdbc/mds/owsm C:\\\\Oracle\\\\Product\\\\BI_11.1\\\\user_projects\\\\domains\\\\bifoundation_domain\']): java.io.IOException: Cannot run program "sh": CreateProcess error=2, The system cannot find the file specified')
I left the config.bat open (It only takes one time to learn not to cancel during the config.bat or configApps.bat) and I took a trip over to my friendly neighborhood support.oracle.com where I found MOS Doc ID 1580583.1. Essentially, it says to dig into and update a Jar file, and then directs you to Oracle's Java Tutorials to learn how. I decided to do just that and post the steps here.
Forays into Java
The MOS doc says I need to update a file called javashell.py by adding the string “Windows Server 2012” to the list of os.names. This javashell.py file is archived inside a jar file located:
A jar file is simply a package of a bunch of files. To view content of a jar file, the command is:
jar tf jar-file
In my command window, I navigated to the folder where the jython-modules.jar was. For this particular jar, the number of files was bigger than my command window would show, so I sent it to a text file.
The command I used was:
C:\app\product\fmw\wlserver_10.3\common\wlst\modules>c:\java\jdk1.7.0_85\bin\jar tf jython-modules.jar >log.txt
In the jython-modules.jar, there was a Lib\javashell.py. Now that I found my file, I needed to extract the file from the jar. To do that, the command is:
jar xf jar-file [archived-file(s)]
Since I was still in the same directory, I used the following command:
C:\app\product\fmw\wlserver_10.3\common\wlst\modules>c:\java\jdk1.7.0_85\bin\jar xf jython-modules.jar Lib/javashell.py
The file is now extracted and can be edited. I opened the javashell.py file in Notepad++. You can open/edit it in your editor of choice. Not too far into the python script, I found the os.name and the list of other operating systems. I’m not particularly skilled in python, but the change seemed pretty straight forward. As you can see from the screenshot, I just added a comma, and the ‘Windows Server 2012’ at the end of the “nt” operating systems. I am certain this would work for other operating systems added to the certification matrix after the software was released.
Once I’ve saved my changes, I need to get this javashell.py file back into the python-modules.jar.
The command to update a file inside of a jar is:
jar uf jar-file input-file(s)
C:\app\product\fmw\wlserver_10.3\common\wlst\modules>c:\java\jdk1.7.0_85\bin\jar uf jython-modules.jar Lib/javashell.py
With everything in order, I went back to the config.bat window, which was still running. I scrolled to the top, checked the box next to the first line, clicked Retry.
The install completed without any further errors! We got to play with Java Jar files and a python script to resolve an error with the config.bat installer. These steps will allow you to update for any OS, which can come in handy for any that are certified after the initial release of a version of software. Let me know in the comments all the different Operating Systems where you have installed BI Apps. So far, I’ve installed on RHEL 5 and 6, Solaris 10, Windows Server 2008, and Windows Server 2012, each with interesting little quirks. Also, if you have training needs, check out our new trainings for 2016, and contact us! And of course, keep an eye out for more Becky's BI Apps Corner coming soon.