Friday, December 11, 2009

OEL, OBIEE, VirtualBox and Shared Folders

I spent the week installing OBIEE in Windows (Vista Ultimate) and OEL 5, Update 4. I've always tried to install the software I'm working with, it helps to give me a better understanding of what's going on. I don't always understand at first, but after prolonged exposure, I can more easily put the pieces together.

Digression
I can remember trying to install OAS on a Windows server back in 2002, multiple times. I had absolutely no idea what I was doing...just clicking buttons and stuff. In particular, there was the was this one night...err, morning, 4 AM to be exact where I was installing the software for what felt like the 200th time. Did I mention I was onsite...and in the server room? The only reason I remember that particular time was the justification I was using...LC was T minus 1 week.

Post
In the OEL/OBIEE article, I mentioned some problems that I had, those problems are the reason for this post.

I'll recall the setup:
Guest
Oracle Enterprise Linux 5, Update 4
Oracle Business Intelligence Enterprise Edition, 10.1.3.4
Java 6 (1.6_0.17)
Memory: 1280M
Diskspace: 30 GB

Host
Ubuntu 9.04
VirtualBox 3.0.10
--VirtualBox Guest Addtions (i.e. Shared Folders)
Dell XPS M1530
3 GB RAM
150 GB Hard Drive
I believe that's all that is relevant. If I left something off, let me know and I'll add it in.

This is a fresh install of OEL. After installation of the OS, I installed the Guest Additions so I could 1, get a higher screen resolution and 2, I could use Shared Folders.

From the host, I unzipped the OBIEE software into /opt/software/oracle/obiee/linux, I then un-tarred (?) the resultant .tar file.

From the guest, I logged in as root and issued:
mount -t vboxsf software /mnt/software
* You can see the full set of instructions on the Shared Folder post

I then navigated to the directory via the mounted path
/mnt/software/oracle/obiee/linux/RH_Linux/Server/Oracle_Business_Intelligence
From there I followed the instructions.
[oracle@localhost Oracle_Business_Intelligence]$ ./setup.sh -console
InstallShield Wizard

Initializing InstallShield Wizard...

Preparing Java(tm) Virtual Machine...
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
...................................
............
It would just hang there. For the longest time.

I poured over the documentation to see if I missed a required library or something. Nothing. I ran and reran the UnixChk.sh script multiple times (the script checks to see if OBIEE can be installed and outputs SUCCESS or FAILURE). I would start and stop this installation over and over. Going so far as to let it run overnight (which for me is about 5 hours).

I could get past this part, given sufficient time, typically down to the point where it is actually writing the software to disk (presumably anyway).
Installing $L(com.siebel.analytics.install.AnyStringConstants,
InstallConfig.ProductName) $P(SiebelAnalyticsProductBean.productNumber). Please
wait...


|-----------|-----------|-----------|------------|
0% 25% 50% 75% 100%
|||||||||||||||||||||||||||||||||||||||||||||||||||

Installing Oracle Business Intelligence 10.1.3.4.1. Please wait...
||||||||||||||||||||
Again, it would just sit there.

Finally, on Wednesday evening I saw a friend of mine (Tom Roach, former President of SOUG) online (or did he see me?). Anyway, I told him about the situation and, since he expressed interest in my problem, I offered to show him.

We then spent the next 30 minutes trying to get him access to my computer. Suffice it to say, I can do that easily on Windows. Ultimately, he talked me through enabling SSH and he was in.

That's when the magic began.

As I watched him type up all these commands, looking through scripts...and starting and stopping the installation. I had my own personal (*nix) trainer. First, I believe he ran
[oracle@localhost Oracle_Business_Intelligence]$sh -x ./setup.sh -console
Which then output all kinds of stuff I didn't recognize. I asked him later what it was, the sh command let's you debug the shell script to get a better idea of what is going on. When he killed it, I noticed an error, "'run' class cannot be found" or something along those lines. Before Tom showed up, I had suspected there was something going on with my Java environment. I tried using jcontrol to change the memory allocated to Java upon start with no luck. I began installation, then ran jconsole to see what was going on with the JVM. I saw "things" that must have been the problem...none of this proved out in the end. In fact, I think I told Tom that originally, that I suspected that the Java environment wasn't set up correctly.

He then noticed that it was calling Linux.jar in the same directory. So he ran that directly (to eliminate a possible error in the main script I'm guessing):
[oracle@localhost Oracle_Business_Intelligence]$exec Linux.jar -console
or something very close to that.

Occasionally he'd run this "history" command. Wow! You can see all the commands you've entered. That's helpful.

Next up he tried to run "strace." "File or directory not found" Tom, prefix it with /sbin or /bin. No go. It's not installed. I then began to look for it on 1 of the 4 ISO images. Found it and loaded it.

ENTER STRACE COMMAND

He then began to pour through the when he notices lines like this:
wait4(5171, 0xbfa23aac, WNOHANG|WSTOPPED, NULL) = 0
read(3, 0x8a39cd0, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(5, 0x8a39cd0, 4096) = -1 EAGAIN (Resource temporarily unavailable)
nanosleep({0, 10000000}, NULL) = 0
wait4(5171, 0xbfa23aac, WNOHANG|WSTOPPED, NULL) = 0
read(3, 0x8a39cd0, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(5, 0x8a39cd0, 4096) = -1 EAGAIN (Resource temporarily unavailable)
nanosleep({0, 10000000}, NULL) = 0
wait4(5171, 0xbfa23aac, WNOHANG|WSTOPPED, NULL) = 0
read(3, 0x8a39cd0, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(5, 0x8a39cd0, 4096) = -1 EAGAIN (Resource temporarily unavailable)
nanosleep({0, 10000000}, 0) = ? ERESTART_RESTARTBLOCK (To be restarted)
Googled those, but I believe he had his suspicions. He also found the following useful, but I'm not sure why. I think he mentioned something about the fork() and trying to change directories but being unable to.
getcwd("/home/oracle"..., 1024)         = 13
chdir("/mnt/software/.../Oracle_Business_Intelligence") = 0
pipe([3, 4]) = 0
pipe([5, 6]) = 0
fork() = 5171
chdir("/home/oracle") = 0
close(4) = 0
close(6) = 0
fcntl64(3, F_GETFL) = 0 (flags O_RDONLY)
If I can't recall very clearly it's because we started this IM at about 11:30 PM EST. It was now approaching 1 AM.

Based on what he said and the problems Jake had previously, I began to seriously think it might have something to do with the Shared Folders. I wondered aloud on IM, "Could this be due to the Shared Folders and the OS's inability to write there?" Tom, "Perhaps"

I asked if I should just move the software to the OS and run it from there.

By then Tom was giving me a great tutorial on screen.

Tom didn't get to installing the software successfully, but he gave me sh, screen, history, and strace. By reviewing the output with him and explaining what I was trying to do, Tom got me going in the right direction.

After 2 hours, now 1:30 AM, Tom finally succombed. That was pure awesome...thanks again Tom for your help!

I wasn't ready for sleep yet (besides being a bit of an insomniac), I had new life.

First copied the files over to the guest OS. Ran the UnixChk.sh script then ran the setup.sh script. After about a minute, I was prompted for my first response. Sweet! I answered all the questions and went down to watch TV for an hour or so. I came back, answered a few more questions and it was done.

Only to be destroyed later that morning and re-installed.

11 comments:

  1. Correction.

    "sh ./setup.sh -console"

    should be "sh -x ./setup.sh -console"

    :)

    ReplyDelete
  2. holy schnikeys! You are fast!

    Post is updated...thanks.

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. So with screen, I started it with strace -o filename [then the commands without these square brackets]

    then I did ctrl+a then c to spawn me to another screen where I did a "tail -f filename" of the file I created with the -o in strace. I was watching that in real time and I could switch back and forth between screens by issuing ctrl+a then n. Screen is awesome as I never have to worry about losing my connection. If I get disconnected I can easily reconnect and then scroll using ctrl+a then [ then page up/ page down etc... screen is way more powerful than that though!

    ReplyDelete
  5. I feel like it's all coming back to me now :)

    [oracle@localhost Oracle_Business_Intelligence]$exec Linux.jar -console

    I think exec didn't work since that was within the script. Should be.

    [oracle@localhost Oracle_Business_Intelligence]$./Linux.bin -console

    strace example (after you installed it)

    [oracle@localhost Oracle_Business_Intelligence]$strace -o ~/somelogfile.txt ./Linux.bin -console

    The other command I showed you was vimdiff :)

    Can't believe you left that one out of there!

    jk

    ReplyDelete
  6. Also like to add, what I saw in strace was something like wait4 or wait(-1) [I cant recall either as I was beat] but this was right about the time it was issuing a cd command. It was just waiting.... and waiting and waiting...

    Anyway, if you add the -c option, you can get some extra data including time! Where have we heard that before (10046).

    Also, if I added -f flag, I could have traced the forked process as well.

    To get a full list of what you can do, go here http://linux.die.net/man/1/strace

    ReplyDelete
  7. I think you should do a post from your point of view...incorporate all these useful comments and stuff.

    Thoughts?

    ReplyDelete
  8. Maybe this weekend. I am still working on my DataGuard post with RAC involved :)

    ReplyDelete
  9. Also,

    sh is just shell. If a script was not executable, you could still execute it by specifying sh before it. The -x flag puts it into debug mode.

    ReplyDelete
  10. Also with History not only can it it display commands, you can execute that command by taking the number preceding it and prefixing an exclamation point. So if you saw

    1234 some command

    !1234 would execute that command.

    You could also hit CTRL+r and then start typing and you will see it will match commands through your history to what you were typing. Check it out if you want to tinker :)

    ReplyDelete
  11. hi tom,
    its really nice post.i have good idea how to install OBIEE in linux.
    thank you so much..

    but i am facing one problem during the installation i.e i am getting the following error..
    ERROR MESSAGE:
    "The license file does not match it's signature. Please contact Siebel technical support."

    if possible please help me out..where i am doing wrong!

    ReplyDelete