Monday 13 October 2008

Hyperion EPM on Windows Server 2008

For an upcoming workshop we are running, covering the Oracle BI offering, I had to upgrade the relevant Oracle software to later versions. This included upgrading Oracle 11g to 11.1.0.6 patch 8 (11.1.0.7 not available for Windows at the time), upgrading Hyperion 9.3 to EPM Fusion edition and upgrading OBIEE plus. As an aside, the upgrade to Oracle 11g wasn't exactly seamless due to some Hyperion 9.3 service mainting a reference to the Oracle client dlls despite the fact that I had "uninstalled" Hyperion prior to the 11g patching. However, the use of ProcessExplorer soon highlighted the offending process and I was able to complete the patching in due course.

Installing Oracle/Hyperion Enterprise Performance Management Fusion Edition on Windows Server 2008 however, seemed to pose some interesting challenges. I'm not sure if this is as a result of running the Windows Server 2008 as the OS, the fact that the OS is actually running in Hyper-V, the fact that I uninstalled Hyperion 9.3 first and then installed EPM or something else but the net result was that it took me almost 2 days to solve an issue with OpenLDAP.

Attempts to start the Hyperion OpenLDAP service were unsuccessful and thus none of the other services were able to register with Shared Services. (i.e. The Shared Services service requires the OpenLDAP service to be up and running before it can start.) The failure to start the service provided little in the way of messages that would help debug the issue but consulting the EPM installation documentation (and Google) showed that you can start the OpenLDAP service from the command line using the "-d" switch in order to get some logging to sdtout. A switch of "-d 1" provides copious volumes of logging information and "-d -1" even more so. ;-)

Although this did produce some logging, in the end it was of little benefit as I got mixed results. Those mixed results were a combination of getting the OpenLDAP service to start from the command line (after tweaking some command line arguments to the "slapd" exe by adding a reference to the config file) to the service no longer starting thereafter. When the service would no longer start, I got the dreaded "slapd starting" message in the console whereupon the service would do little else. According to Google searches, the solution appeared to be to "download a later version of OpenLDAP" which clearly wasn't an option as I needed to use the Oracle implementation of OpenLDAP.

At this point I figured that a re-install was probably on the cards so I uninstalled EPM, deleted the directory into which it had been installed and then reinstalled the EPM software. Guess what... The OpenLDAP service started! oooOOOOOooooo. So a quick config of the services and... D'OH! still no joy! None of the services were able to register with Shared Services. Grumble, grumble, grumble. What now?

Even more debugging and looking at the Shared Service log files showed messages such as "Native Directory is not reachable. Attempting to re-connect" with references to the server's hostname and a port number of 28089. This seemed to indicate that services were attempting to connect to OpenLDAP on port 28089 and couldn't get through. Further investigations showed that OpenLDAP does not use that port number by default, so it needs to be set at startup.

Now that's where the fun and games started. Rather than go through all the possible places where they can be set depending on which article you read (which I unfortunately tried), I'll just tell you the right place. It would appear (and I'm guessing here) that the installation of EPM on Windows Server 2008 does not install some much needed registry entries. A colleague of mine installed EPM on Windows XP and it all went well. A quick check of the registry on that machine confirmed that this is what was missing. So...

What you need to do, is to ensure that the following registry entries (and structure) exists in the registry:

[HKEY_LOCAL_MACHINE\SOFTWARE\OpenLDAP\Parameters]

with keys:

ConfigFile PathToOpenLDAPDirectory\slapd.conf
DebugLevel 0
Urls ldap://:28089

Note that the "ConfigFile" and "Urls" parameters are String settings whereas "DebugLevel" is a DWORD32

And that's it. A restart of the OpenLDAP service and Shared Services service meant that I could register all the other Hyperion services. The "Urls" parameter is the main setting, as that dictates that OpenLDAP is to listen on port 28089 which is what is required by the rest of the Hyperion services.

It may also be worth noting that a quick glance at the default slapd.conf file supplied by Oracle lists that a "pid" file and "arg" file be created in the ".../var/run" directory. Clearly a *nix setting but rather amusingly there is no "run" directory under the "var" directory in the Windows structure. If you create it, those files will be created. Also, it may well be worth you adding in an entry for the creation of a logfile. I added an entry in the "slapd.conf" file, immediately below the entries for the "run" and "arg" files to do this. The key looks like:

logfile PathToOpenLDAPDirectory\logs\slapd.log

To get logging to appear in this file you will need to change the value in the registry entry "DebugLevel" created earlier to a value other than zero. The number 4 is probably a good value to go for or 1 if you wish to debug issues.

And there you have it. I hope that this helps others to have more time to do things other than the configuration of EPM.

Good luck.

15 comments:

  1. Thank you, thank you,

    The info you provided help to solve the same problem I am encountering when I install EPM on Windows Vista.

    ReplyDelete
  2. You are absolutely welcome! Happy that someone else got a benefit from my debugging.

    Hope all goes well with EPM on Vista!

    ReplyDelete
  3. Sir, you are a bona-fide genius. I spent two days trying to get it to run on Vista and your registry key advice was all I needed.

    Thank you and keep up the good work :-)

    ReplyDelete
  4. Thanks - that worked a treat getting OpenLDAP to start!

    I am unable to get it to register any services with Shared Services though, and appear to get an "Unsupported OS version " message in the HFM installation log.

    Windows Server 2008 is not listed as a supported platform for EPM 11.1.1.1, but did you manage to get EPM running on your Server 2008 VM?

    Thanks

    Steve

    ReplyDelete
  5. Yes, absolutely, EPM is still running on that server.

    The only thing that prevented it from being a smooth installation was the OpenLDAP issue. Once that was running I was able to register all of the services that I had installed.

    Do you get any other error/warning messages?

    Note that you can increase the log level for the OpenLDAP service as well, assuming you implemented all of the changes I mention in my blog. If you have, when you "up" the log level do you see any requests being logged when you try and register services? (i.e. Is the issue with OpenLDAP or something else?)

    ReplyDelete
  6. It may be OK now....

    I reverted to a pre-install VMWare snapshot and repeated the install, making the registry settings for OpenLDAP during the install.

    To my surprise/delight the applications registered with Shared Services and everything seems to be behaving itself!

    We'll see how it pans out when I get the HFM demo applications going, and (more importantly) whether our Merlin Reporting app works on EPM 11!

    Thanks for your help

    ReplyDelete
  7. Lol, no problem. Glad you got it sorted and good luck with your application!

    ReplyDelete
  8. Aliens (#2) is definitely the best of the series. Hudson loosing his cool with pulse-rifle in hand...Thanks for the post...To confirm then - you are alive and well on Server 2008 even though the platform does not officially support it? They need to get with the times quickly as 2003 Server is - oh - 6 years old now! Thanks again for the great post.

    ReplyDelete
  9. Yup, when I first started debugging that issue I thought it was "game over man, game over"! :-)

    I must admit that I haven't looked at the server for quite a while now, been concentrating on 11g OLAP and the new Simba driver for Excel pivot tables. However, as far as I know it is still up and running though clearly it is a dev/demo machine and not a production box. We also haven't stressed it or tried all of the various components but it all installed and configured successfully, once this issue was sorted.

    Yeah, Win2k3 is a little long in the tooth now but I think all of the mergers and operating systems that need to be supported across products are taking their toll...

    ReplyDelete
  10. Thanks a lot for this! I could install and configure (almost) all on Win Server 2008 with just this registry change. However, HFM Web does not configure yet with IIS7. Need to find a hack for that!

    ReplyDelete
  11. The answer to the problem of not able to configure HFM web is that the config scripts use IIS6 format. So we have to install IIS6 compatibility pack which is not installed by default. Now the config works!

    ReplyDelete
  12. Ah excellent, thanks for posting back on how to get HFM Web to work with IIS7. Much appreciated!

    ReplyDelete
  13. Celebrated a bit too early...HFM config works but unable to open applications in workspace (creating/opening apps using client works). Getting the appcontainer not configured error which I think is DCOM related..any tips appreciated..shall try and reconfigure with Apache not IIS to see if that takes care..

    ReplyDelete
  14. Hi can you help me fixing openLDAP issue. Even after adding the above mentioned parameters in registry still I am unable to start OpenLDAP and also I cant see any files under slapd.conf file in C:\hyperion\products\foundation\openLDAP\slapd.conf.

    ReplyDelete
  15. Hmmm, sounds like you may have a dodgy install. The only thing I can suggest is that you enable logging in the registry entry and create a slapd.conf file with the log file parameter as specified in the article. That way when you try and start the service you should get some messages in the log file to help you figure out what is going wrong.

    ReplyDelete