Running the OBIEE Administratiol tool on Unix using Wine

The other day I was playing with getting OWB11gR2, which at the time of this writing, has only been released under Linux and Solaris, to run under Windows. In the pursuing comments Jon Mead threw down the gauntlet and asked if I could figure out a way to run the OBIEE Administration tool under Linux. Like many of you might know, most everything in the OBIEE stack runs on Windows as well as various Unixes, but the Administration tool however is only available on Windows. The reason for that being that the tool is written using Microsoft Foundation Classes.

So I set out to give it a go. I picked a random Ubuntu VM image I had laying around and installed Wine (sudo apt-get install wine). After some failed attempts on trying to figure out which DLLs the admintool.exe uses I figured out that the Dependency Walker tool was just what I needed (I still would have preferred to have a proper Windows equivalence of the Unix tool ldd ). Looking at the dependent DLLs I quickly saw that most all of these libraries are contained in the %BIHOME%\server\bin directory. The tricky bit would be to get the MFC libraries in place. A quick Google search suggested to use the Winetricks gadget to install the .NET 2.0 libraries in to Wine

wget http://www.kegel.com/wine/winetricks && sh winetricks msxml3 dotnet20

This should install a working version of .NET on Wine. The next issue is to set the proper PATH variable in your wine session. I started up a wine Command line util by issuing:

wineconsole cmd

Now, we also need to have the software in place. So grab a complete copy of both the OracleBI and OracleBIData directories from a working Windows installation. Make sure to note the full path of your installation as you want to match the correct path (including drive letters) in Wine. Use the winecfg utility to map a Wine drive letter to the folder where you copied the OBIEE installation to. In my case I had OBIEE installed on E:\BI. I copied my installation to /mnt/hgfs/BI and configured Wine to map E: to /mnt/hgfs/

winecfg.png

Next I created a little .bat file to set the environment to what the admintool.exe expects to find, e:\wine.bat :

set SADATADIR=E:\BI\OracleBIData
set SAROOTDIR=E:\BI\OracleB
set SATEMPDIR=E:\BI\OracleBIData\tmp

set PATH=%PATH%;E:\BI\OracleBI\server\Bin;E:\BI\OracleBI\web\bin;E:\BI\OracleBI\web\catalogmanager;E:\BI\OracleBI\SQLAnywhere;

This makes it possible to now fire up the admintool.exe and open up an .RPD file in Offline mode:

obiee_admintool.png

This seems to behave OK and I am happy with what we got. But I still want to be able to connect to an Online server. My Ubuntu has already a working OBIEE installation so I am keen to get the Oracle BI Server ODBC driver set up on my Wine. This is where the winetrick comes in handy again.

sh winetricks jet40 mdac28

This gives me a working Microsoft ODBC for Oracle. A quick Windows Registry hack to register the e:\BI\OracleBI\server\Bin\NQSODBC.dll with the Wine Registry and we are on our way. First I exported the following key from my working Windows XP VM image: [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Oracle BI Server]. (Make sure to export it using a Win95 format). Import this key in to your wine installation, using wine regedit. Then create a new string value, called Oracle BI Server, in the [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers] key, and give it the value Installed. This will tell Wine where to look for your .DLL.

obiee_reg_1.png

Next step is to simply create a normal ODBC connection to my local BI Server with the odbcad32.exe command in the wineconsole:

obiee_odbc_conn1.png

Now I fire up the admintool.exe and see if I can connect to my local BI server:

obiee_admin_conn1.png


And the joy!

obiee_admin_conn2.png
Now, it will be interesting to see if I can actually work with this, but at first glance it looks just fine. Hasn't crashed on me yet, so I am hopeful it will stick. Next step is to try out the other tools as well, such as the Catalog Manager. These are Java based, so I might as well try and run them natively from Ubuntu ...?