Pages

Thursday, February 5, 2015

HFM 11.1.2.4 Running On Commodity Linux

HFM 11.1.2.4 was released by Oracle last week. The talks about platform independency got many EPM professionals excited - and then disappointed when they learned that besides Windows Server you can only run HFM on Oracle Exalytics. But some Exalytics servers run on Oracle Linux, right? Could HFM be installed and configured to run on a commodity Linux box? Just for the fun of it I tried and managed to get it working!

I started by installing Oracle Linux 5.8 as the certification matrix document mentions "Oracle Linux 5.8" as the kernel version for Exalytics PS4.



I configured the Oracle Linux repository (public-yum-el5.repo) for yum and installed the oracle-validated package to get most of the required libraries etc. installed (see the this blog post from Oracle for more info on the oracle-validated rpm). This should be enough to get EPM System installed and configured. The HFM application server component turned out to be trickier though. When an HFM application starts up, a program called xfmdatasource.exe is started (just like HsvDataSource.exe used to work in previous versions). It turns out that this process is not written in Java and while the rest of the EPM services start up fine the xfmdatasource unless you have installed just the right set of dynamic libraries. Having run Linux in different forms since 1995 I luckily know how to troubleshoot shared library issues. ;) By using the ldd command I figured out the missing libraries along with some exotic ones that came with the installation. 

$
LD_LIBRARY_PATH=".;/home/hyperion/Oracle/Middleware/EPMSystem11R1/products/FinancialManagement/Server/mw/lib-amd64_linux_optimized"
ldd xfmdatasource.exe
        linux-vdso.so.1 =>  (0x00007ffff7acd000)
        libboost_system-gcc41-mt-1_48.so.1.48.0 =>
./libboost_system-gcc41-mt-1_48.so.1.48.0 (0x00007f32b57c7000)
        libxfmsession.so => ./libxfmsession.so (0x00007f32b558a000)
        libxfmjournals.so => ./libxfmjournals.so (0x00007f32b52c5000)
        libxfmicm.so => ./libxfmicm.so (0x00007f32b4ff9000)
        libxfmdata.so => ./libxfmdata.so (0x00007f32b4b77000)
        libxfmprocessflow.so => ./libxfmprocessflow.so (0x00007f32b48ce000)
        libxfmreports.so => ./libxfmreports.so (0x00007f32b4637000)
        libxfmdatacubes.so => ./libxfmdatacubes.so (0x00007f32b4410000)
        libxfmdqi.so => ./libxfmdqi.so (0x00007f32b4172000)
[...etc...]

I used yum to figure out which packages provide the missing libraries and installed all of them. Then I fired up the start.sh script to start all EPM services and hoped for the best. And it did work without any special fiddling required to EPM configuration!

All looks good in the EPM Validation Utility:





I loaded the Comma sample application metadata, data and web forms etc. Checked data using grids and ran consolidations and things seemed to work just fine.



The xfmdatasource.exe process did crash once though so Oracle will need to give it a bit more testing... But clearly there doesn't seem to be any software specific reason not to certify HFM on Oracle Linux running on commodity hardware as well.

Here's the list of RPMs I installed so you can compare in case you want to try this on your own VM. BUT REMEMBER it's ok for testing purposes only - Don't come yelling at me because Oracle Support tells you you 're not supposed to be running this combination in Production. ;)

e2fsprogs-libs-1.39-37.0.1.el5
glibc-2.5-123.0.1.el5_11.1
keyutils-libs-1.2-1.el5
krb5-libs-1.6.1-80.el5_11
libgcc-4.1.2-55.el5
libicu-3.6-5.16
libselinux-1.33.4-5.7.el5
libsepol-1.15.2-3.el5
libstdc++-4.1.2-55.el5
libX11-1.0.3-11.el5_7.1
libXau-1.0.1-3.1
libXdmcp-1.0.1-2.1
libXext-1.0.1-2.1
openssl-0.9.8e-32.el5_11
unixODBC-libs-2.2.11-10.el5
zlib-1.2.3-7.el5

One more thing... If your VM is short on memory like mine is, it's a good idea to change the MinDataCacheSizeInMB setting to a smaller value before starting up an HFM application. The default value makes the application process consume 2.5 GB right away which is bit of a killer for small VMs.


17 comments :

  1. Great job! You're right this is not for production btw -- OpenSSL 0.9.8 is really insecure, among other things.

    ReplyDelete
  2. Great job and nice testing!
    Sure going to try to rebuild on my own VM.

    ReplyDelete
  3. Great job Henri! I will try this on 5.8 as well. Tried on OEL 6.4 but did not quite get there with HFM so far

    ReplyDelete
  4. Nice one.
    But, based on the ldd-output (libwsock32.so?), I doubt Oracle actually did a re-write...
    Looks more like they cleaned up the code so it would run under the wine implementation of the win32 libraries.

    ReplyDelete
    Replies
    1. Or perhaps it's cross-compiled using Mingw or similar... But anyway, it's a bit weird to have xfmdatasource implemented in native code when the rest of the stack runs on Java.

      Delete
  5. Henri,
    After a little more digging, looks like Oracle probably used:
    http://www.mainsoft.com/content/mainsoft-unix-and-linux-overview
    for the porting, just like Autodesk did.

    And my guess is that rewriting the entire engine in Java is likely going to kill the performance they had with the code in C/C++.

    Yes, that exe-file probably holds the actual HFM engine and limiting the memory for that application might lead to random crashes as I doubt Oracle ever tested with a lower setting then the default.

    ReplyDelete
  6. Great post, does this mean we could put potentially put an almost full EPM install (Essbase, Planning, HFM, FDMEE) on an Amazon AWS Linux image?

    ReplyDelete
    Replies
    1. Yes, it does... I know that some consultants have done that already.

      Delete
  7. Nice post, thank you.

    Did you had a chance to run a consolidation? Is the speed performance improvement as good as Oracle claims?

    Eduardo

    ReplyDelete
    Replies
    1. I didn't really test consolidations much on the Linux install because it was running on a sluggish VM on my laptop... But we did some lab tests on EPM 11.1.2.4 running on Windows on proper hardware (32 physical cores) and I have to admit that big consolidations were really flying on that box. Consolidation times were in some cases dropping by 50-70% from those observed on EPM 11.1.2.3. So yes, some applications will see great benefit from the way HFM 11.1.2.4 can utilize more CPU resources. Of course it depends on the way the application is built though because being able to run many low-level consolidation threads in parallel is the key to these performance improvements.

      Delete
  8. HI,
    I didn't know how to use LLD and figure out about missing libraries. Can i just use the RPMs you have mentioned in the end?

    Regards

    ReplyDelete
    Replies
    1. Yes, you can install the listed RPMs manually. But the easiest method (as mentioned on my colleague Pablo Bryan's blog) is to use the pre-built Exalytics base image you can download from Oracle Software Delivery Cloud:
      - Open the URL https://edelivery.oracle.com/ and log in
      - Select the product pack: "Oracle Business Intelligence"
      - Platform: Linux x86-64
      - Select "Oracle Exalytics Software Media Pack for Linux x86-64" (1.0.0.5.0)
      - Download the image: "Oracle Exalytics Base Image 2.0.1.1.0 for Exalytics Oracle VM x86-64"

      Delete
  9. Has anyone managed to get FCM with HFM working on Linux/Exalytics? I got stuck at the deployment to SOA step at the very end and not too keen to invest more time if it turns out there is some known issue.

    ReplyDelete
  10. I had installed configured hfm in OEL 5 update 8, consolidation administration open fine, but when i click on new application i get an error JBO exception (only the first time of logging in) after clicking ok it displays to create application but cluster drop down is empty... any suggestions would be much appreciated.

    ReplyDelete
  11. Hi Henri,

    I get "No package available" for this one: glibc-2.5-123.0.1.el5 ...how could I get around that?

    ReplyDelete