Wednesday 2 July 2014

How to disable Implied Share


What is implied share?
Implied share is the data storage method for Essbase when there is only one consolidating child for a given parent. In such a case, Essbase only stores data once for these two members.
Even if you have many children under the parent, but only one of them consolidating to, this situation will also result in the implied share mechanism to take action.

What is wrong with implied share?
If you create a data form with @ICHILDREN function to this member (or @IDESCENDANTS) both the only child and the parent will be represented.
In this case, when you enter data to the child, data will not be saved, due to data for parent being #missing and also being saved.
Of course you can enter data twice to overcome this issue, but it doesn't feel right

How to fix for some parts of the hierarchy?
Option 1: A new aggregating member under the same parent can be created to disable the implied share for this hierarchy. But in this case, data forms showing the hierarchy will have a dummy member which is not always applicable.
Option 2: Parent member storage option can be changed to "Never Share" to avoid implied share for the specific part of the hierarchy. The drawback on this option would be that, parent member now can't be a part of an alternate hierarchy.
Option 3: Parent member's member formula can also be updated to the name of the only aggregating child member. The drawback on this option is that, maintenance work related to watch the hierarchy changes increases.

How to fix for the whole application?
There are eight steps to apply application wide fix:
1.      Backup your data
2.      Add below code to essbase.cfg file
o    IMPLIED_SHARE <APPNAME> FALSE
3.      Restart Essbase Server
4.      Create a new application and database
5.      Rebuild the outline
6.      Reload the data
7.      Run the aggregation scripts
8.      Restart the application

For more information about this setting:

http://docs.oracle.com/cd/E40248_01/epm.1112/essbase_tech_ref/frameset.htm?impliedshare.html
Drawback of turning implied share off
In such cases that you can't avoid turning implied share off, this will result in a larger block size and relatively slower performance.

Installing Oracle Hyperion 11.1.2.2 on Oracle Enterprise Linux


Follow these steps if you would like to install Oracle Hyperion 11.1.2.2 on Oracle Enterprise Linux 6.5:
0. Update the server
    yum update && yum upgrade

1. Install Oracle Java
    go to
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
    Choose Java SE Development kit 6u45
    Accept License Agreement
    Download jdk-6u45-linux-x64-rpm.bin
    Go to the download directory and run the following commands:
        chmod +x jdk-6u45-linux-x64-rpm.bin
       ./ jdk-6u45-linux-x64-rpm.bin
       alternatives --install /usr/bin/java java /usr/java/latest/jre/bin/java 200000
       alternatives --install /usr/bin/javaws javaws /usr/java/latest/jre/bin/javaws 200000
       alternatives --install /usr/lib64/mozilla/plugins/libjavaplugin.so libjavaplugin.so.x86_64 /usr/java/latest/jre/lib/amd64/libnpjp2.so 200000
       alternatives --install /usr/bin/javac javac /usr/java/latest/bin/javac 200000
       alternatives --install /usr/bin/jar jar /usr/java/latest/bin/jar 200000
    now let’s check the java version by running this command:
        java -version
    result should look like:
        java version “1.6.0_45”
        Java (TM) SE Runtime Environment (build 1.6.0_45-b06)
        Java HotSpot (TM) 64-Bit server VM (build 20.45-b01, mixed mode)
2. Change the limits
    nano /etc/security/limits.conf
    add these 2 lines (replace the username with the username you are using to install Hyperion):
        username soft nofile 4096
        username hard nofile 63536

    restart the server 
3. Update the hosts file (this will remove the warning at the first screen of the installation)
    nano /etc/hosts
    Update the line from
        127.0.0.1      localhost     localhost.localdomain
    to
        127.0.0.1      servername     localhost     localhost.localdomain

4. Install the prerequisite packages

    yum install compat-libcap1
    yum install compat-libstdc++-33.i686
    yum install compat-libstdc++-33.x86_64
    yum install libstdc++.i686
    yum install libstdc++-devel libstdc++-devel.i686
    yum install gcc-c++
    yum install libaio-devel
    yum install glibc-devel.i686 glibc.i686
 
5. Disable SeLinux

    nano /etc/selinux/config
    change mode from enforced to disabled

6. Run the install tool from the installation folder