OBIEE on Windows 10: not a guide
Attention! Achtung! Внимание! This post does not describe how to install OBIEE on Windows 10.
TL;DR: Proceed to the OBIEE Windows 10 installation tips post for the installation guide.
Windows 10 was released by Microsoft a couple of weeks ago. OBIEE is not certified to work on Windows 10, but I believe it will get a significant share of the OS market very soon. It was interesting for me is it easy or not to install OBIEE 18.104.22.168.0 on Windows 10, and what problems I need to solve. This post was conceived as a collection of clear, simple, and wrong solutions. Something I should try now, not when I come to a customer. I've tried to test as many variants as I can invent. My next post describes how to install OBIEE on Windows 10 (it's very simple, actually), this one describes how not to do it.
All my experiments were made on Windows 10 Technical Preview build 10240. And I haven't tried the Simple install option.
I've started with the most obvious solution: ran setup.exe and watched what was going on.
1. RCU - worked perfectly for don't know how many times.
2. Installer - it takes a few minutes before it starts. Don't panic, just wait.
3. Installation process - smooth without errors.
4. Configuration process - ups. The process freezes at the Deploying Financial Reporting JEE Application step. Installer shows no error, but nothing happens. The installation log shows the following errors:
Traceback (innermost last): File "
", line 44, in ? File "c:\app\oracle\MIDDLE~1\WLSERV~1.3\common\wlst\modules\jython-modules.jar\Lib/javaos$py.class", line 334, in system File "c:\app\oracle\Middleware\wlserver_10.3\common\wlst\modules\jython-modules.jar\Lib/popen2.py", line 235, in system File "c:\app\oracle\Middleware\wlserver_10.3\common\wlst\modules\jython-modules.jar\Lib/popen2.py", line 72, in __init__ File "c:\app\oracle\Middleware\wlserver_10.3\common\wlst\modules\jython-modules.jar\Lib/javashell.py", line 64, in execute OSError: (0, 'Failed to execute command ([\'sh\', \'-c\', \'C:/app/oracle/Middleware/Oracle_BI1/products/financialreporting/bin/FRPrintServerUtility.cmd c:\\\\app\\\\oracle\\\\Middleware\\\\user_projects\\\\domains\\\\bifoundation_domain C:/app/oracle/Middleware/Oracle_BI1/jdk C:/app/oracle/Middleware/Oracle_BI1\']): java.io.IOException: Cannot run program "sh": CreateProcess error=2, The system cannot find the file specified')
Cannot run program "sh"? What does it mean? It's Windows, we use cmd here, not sh!
def _getOsType( os=None ): """Select the OS behavior based on os argument, 'python.os' registry setting and 'os.name' Java property. os: explicitly select desired OS. os=None to autodetect, os='None' to disable """ os = str(os or sys.registry.getProperty( "python.os" ) or \ System.getProperty( "os.name" )) _osTypeMap = ( ( "nt", ( 'nt', 'Windows NT', 'Windows NT 4.0', 'WindowsNT', 'Windows 2000', 'Windows 2003', 'Windows XP', 'Windows CE', 'Windows Vista', 'Windows Server 2008', 'Windows 7' )), ( "dos", ( 'dos', 'Windows 95', 'Windows 98', 'Windows ME' )), ( "mac", ( 'mac', 'MacOS', 'Darwin' )), ( "None", ( 'None', )), ) foundType = None for osType, patterns in _osTypeMap: for pattern in patterns: if os.startswith( pattern ): foundType = osType break if foundType: break if not foundType: foundType = "posix" # default - posix seems to vary most widely return foundType
I don't know Jython, but it looks very simple. This library knows nothing about Windows 10 (and Windows 8/8.1 or Server 2012 by the way) so Windows 10 becomes "posix" instead of "nt".
It means that the following code will return "sh" as a shell
# override defaults based on osType if osType "nt": shellCmd = ["cmd", "/c"] envCmd = "set" envTransform = string.upper elif osType "dos": shellCmd = ["command.com", "/c"] envCmd = "set" envTransform = string.upper elif osType "posix": shellCmd = ["sh", "-c"] envCmd = "env" elif osType "mac": curdir = ':' # override Posix directories pardir = '::' elif osType == "None": pass
The first try was a failure. We can't simply run setup.exe and install OBIEE on Windows 10.
The interesting thing is that Technical preview buid 10240 was determined as version 6.3.
This version number is the same as the supported Windows 8.1. If I understand this correctly, Windows API will soon return 6.2 for applications that have not been manifested for Windows 8.1 or Windows 10.
Windows 7 compatibility mode
The second try was obvious: jython-modules.jar knows nothing about Windows 10 let's tell him that we have Windows 7. I started setup.exe in Windows 7 compatibility mode.
Installer shows that Windows version is 6.1 now, not 6.3 as it was before.
The process now passes the Deploying Financial Reporting JEE Application step, but freezes at the Starting Managed Server: bi_server1 one.
The installation log shows nothing interesting.
[2015-08-04T12:39:22.839-07:00] [as] [NOTIFICATION]  [oracle.as.install.bi] [tid: 60] [ecid: 0000KvuBrPc5EgWVLyqIOA1LkH5C000005,0] Starting server [2015-08-04T12:39:23.401-07:00] [as] [NOTIFICATION]  [oracle.as.install.bi] [tid: 60] [ecid: 0000KvuBrPc5EgWVLyqIOA1LkH5C000005,0] State : SHUTDOWN [2015-08-04T12:39:28.417-07:00] [as] [NOTIFICATION]  [oracle.as.install.bi] [tid: 60] [ecid: 0000KvuBrPc5EgWVLyqIOA1LkH5C000005,0] State : STARTING [2015-08-04T12:57:10.206-07:00] [as] [NOTIFICATION]  [oracle.as.install.bi] [tid: 60] [ecid: 0000KvuBrPc5EgWVLyqIOA1LkH5C000005,0] State : UNKNOWN
But bi_server1.log is more interesting.
<1438718226706> <BEA-090402> <Authentication denied: Boot identity not valid; The user name and/or password from the boot identity file (boot.properties) is not valid. The boot identity may have been changed since the boot identity file was created. Please edit and update the boot identity file with the proper values of username and password. The first time the updated boot identity file is used to start the server, these new values are encrypted.>
So was installer unable te create boot.properties? May it be a rights issue?
Windows 7 compatibility mode, run as Administrator
The header explains what I did. The same as the previous try, but setup.exe was run as Administrator. The result was the same as without administrator's rights. Nothing have changed.
Let's give him sh! (sh.bat)
OK, maybe if the installer could execute sh everything was fine? So I've created the sh.bat file and put it to the system32 folder.
echo %1 %2 %3 %4 >> c:\temp\sh.log cmd -c %2
The first line for logging, the second line for emulating sh. It was working as intended on my tests, but no executions were made during the installation&configuration process. StackOverflow explains why: How do I run a batch file from my Java Application?.
Let's give him sh! (sh.exe)
Windows is not very strict when it comes to using of the command's switches. It takes either "-", or "/". So cmd -c ... and cmd /c ... works the same way. I've took cmd.exe an copied it as sh.exe.
The result was exactly the same as for Windows 7 compatibility mode.
Software Only install and Configuration Assistant
The result was the same as for the Enterprise Install. And it was not something unexpected.
Manual creation of a boot.properties file/manual start of a managed server
What I haven't tried, but could
There is a documentBI Publisher Set Up Fails on Windows Server 2012 when Running the Configuration Assistant (Doc ID 1580583.1) on the My Oracle Support site. It describes how to fix a similar problem for Windows server 2012. The solution involves manual changing javashell.py script.
I haven't tried this because there is a simple and working (at least in my "model" environment) solution. OBIEE Windows 10 installation tips
I will add more simple, wrong ways of installation to this post later if I find some.
OBIEE specialist since 2007 and Oracle Discoverer before. DWH architect, BI enthusiast, blogger. Lazy cats owner. All opinions are my own and not the views of my employer.