Developing Essbase Applications: Hybrid Techniques and Practices now available for order

The next iteration of Developing Essbase Applications featuring all new material is now available for ordering on Amazon!

My chapter is already slightly out dated in that now Oracle has certified having 10 virtual machines on the X Series of Exalytics when using the Patch Set 5 release of Exalytics media and the X5-4.  Good news for all Exalytics owners and slightly bad news for my chapter.

DEA2

The great thing about the 10 VM’s is now you can logically setup your virtual machines just as you would physical.

Say you decided to put Oracle Database on the machines you could have one VM for that, one for TimesTen, one for OBIEE, and several for the EPM suite.  Figure out how to allocate your terabytes of ram across all ten and go for it.

The X5-4 Exalytics was also released post publication as well.  Some impressive specs and it can support up to 3 TB of ram which comes in handy with 10 VMs!

Exalytics_Compare

On a slightly non-sequiter topic, If you are like me when you get into My Oracle Support you are reading a few articles beyond what you searched on — Exalytics X series owners who are using OVM may want to take a read of Exalytics Specific Backup Recommendations for Oracle Virtual Machine.

Get Hyper Smart!


John A. Booth

Exalytics and the “Secret Sauce”

Just getting back from Kscope15 where I saw most of the familiar blog folks (in no particular order): Glenn Schwartzberg, Cameron Lackpour, Tim Tow, Tim German, Francisco Amores, Sarah Zumbrum, Celvin K, and John Goodwin.

Cameron convinced several of us a second book was a good idea after swearing after the first one (perhaps literally) that it was too much like herding cats.  Queue the EDS Super Bowl Cowboy video.

Start your engines!

exalytics_fastI  was lucky enough to get Chapter 1 again — I debated this with Cameron that my chapter wasn’t really on Hybrid and the Hybrid chapter should start the book with a sub-title having Hybrid in the name.  He suggested without the hardware you couldn’t do anything else so it should be first.  I didn’t fight back too much.

My content in this edition is really focus Exalytics and also a dive in to the “Secret Sauce”.   You will find some excerpts here and good information.  Glenn suggested it was a little too pro Exalytics however I do believe the newest machines the X4-4, X5-4, and T5-8’s perform extremely well and have features such as the background writes allowing better performance than ever on what were traditionally slower disk subsystems.

Read on for a sample of what you will find near our OOW15 release of the book.

The Exalytics machines have some impressive hardware.   They say a picture is a thousand words so let’s look at what we have:

exalytics_insidePretty cool eh?  My only complaint here is they are a bit pricey which can lead to some forced odd architectures when someone buys two of them and only places one in production.   I’m convinced you really need at least two in production in order to have high availability.  I’ll be lobbying for an X5-2 flavor in another post which would be better suited for some customers.

So what’s the “Secret Sauce”?  It comes in three flavors.

Exalytics First Software – These are enhancements which will make it to the commodity flavors of software

Exalytics Restricted Software – These are enhancements delivered both on Exalytics and commodity however Exalytics flavor has more power e.g. FIXPARALLEL is restricted to 8 threads on commodity and unrestricted on Exalytics

Exalytics Specific – These are enhancements which use the Exalytics hardware itself and not delivered to commodity.

So what exactly can we expect these type of enhancements to do for us?

If you are focused on speed check out the exact same hardware with and without the acceleration flag.  Physical disk gets a huge boost and Flash with the flag enabled is faster than RAM without the flag.

exalytics_compareDo you have Exalytics questions?  Feel free to reach out.


John A. Booth

Part 1: Hyperion Planning Budget Application to ASO Reporting Application

A business need which has become quite common in the last two to five years is taking your budget/plan data and placing it in a reporting application.   Although Oracle has made ASO capabilities part of Planning it’s not always the best fit especially if hierarchies diverge between the systems.   In my specific instance our planning application has a summarized account structure where are reporting application has the full general ledger chart of accounts.

In this post I am going to show visually the steps we use to move the data and identify technology we make use of.

With this solution our planning administration team can on-demand launch a rule to:

  • Export the data
  • Clear target region
  • Map and load data to target cube

HP to ASO Flow

While considering the solution the different levels of detail on the accounts dimension needed to be handled.  We thought of a few ways to attack the problem and decided all three were not as elegant as the above solution.

  • Pure FDM EE e.g. extract from source, process through FDM EE, export
  • Essbase load rules with hard-coded maps
  • Alias tables on source side having target accounts

What makes the diagram much more elegant is our mapping is “free” and automatically updated.  We have a process which loads actuals into our planning system via Financial Management Extended Analytics tables.  This process does a summary mapping on our accounts dimension.   Via some SQL Fu our HP to ASO maps reverse that summary logic to target the first child of the detail mapping.

More to come in future posts with some script logic as well!


John A. Booth

Just Scrub It!

While working on an ASO optimization problem we need to use the full data set however have it be scrubbed. Based on client preference I went down the MS route and started using Regular Expressions in VB Script.  This quickly became a frustrating exercise as these “Regular Expressions” do not work like those of Perl or other real Regular Expressions. The goal is to replace all numeric data with a hard-coded one — 9.0 in this instance.

Update: Oracle Ace Tim German relates if you happen to have Essbase 11.1.2.4 you can also use MaxL to export anonymous data.

So with Microsoft “Regular Expressions” 3.1459 became 9.0 9.0 9.0 — whereas implementing the same logic in Perl gives the expected 9.0 Working code below:

# Scrub.pl
# Author: John A. Booth
#
#USAGE: 
#	perl scrub.pl <FILEPATH>
# e.g.
#	perl scrub.pl C:\data\asodump.txt
#
#	creates C:\data\asodump.txt.scrub
#
# Converts every numeric value to 9.0
# 

if ( $#ARGV==0 && -f $ARGV[0] ) {
    open(INFILE,$ARGV[0]) || die("Could not open input file");
    open(OUTFILE,">$ARGV[0].scrub") || die ("Could not open output file");

    while(<INFILE>)  {
        s/\s[0-9]+[\.]*[0-9]*/ 9.0/g;
        print OUTFILE $_;
    }

    print "\n";
    print "Created file $ARGV[0].scrub\n";
    close(INFILE);
    close(OUTFILE);
}
else {
	if ($#ARGV==0) {
		print "\n";
		print "Cannot find input file $ARGV[0]\n"; 
	}
    else {
        print "\n";
        print "Usage: $0 input.txt\n";
    }
}

John A. Booth

Oh Hybrid what license do I need?

There is quite a chain on Network 54 Essbase forum regarding Hybrid.

If you haven’t heard yet Hybrid is the future of the Essbase OLAP engine combining the Block Storage and Aggregate Storage Engines together for the best of both world.  The 11.1.2.4 release is the best place to begin your Hybrid journey.  Currently cross-dimensional operators force the engine from Hybrid mode back to full Block Storage mode — we are told a forth coming patch will address this soon.

So back to licensing.

Products which confer ASO usage also confer Hybrid Usage.   Expect future licensing documents to clarify this better.

To use Hybrid (for real) in Planning on-prem your planning users of the app where Hybrid is enabled need one of the following licenses:

  • Enterprise Financial Planning Suite
  • Project Financial Planning Module
  • Public Sector Planning and Budgeting Module
  • BI Foundation Suite
  • Essbase Plus

The always handy EPM Licensing Guide documents which products give Aggregate Storage (ASO) rights.

Planning and Budgeting Cloud Services (PBCS) will have Hybrid enabled sometime in the August to October CY15 time frame.

Get Hyper Smart!


John A. Booth

X5-2 Please, subtitle – Smaller may be better (for some companies)

What I really want for Christmas (or Easter) is Exalytics X5-2 (a cry out to product management)

At Kscope15 this year we see Oracle is talking about the newest model in the X series of Exalytics the X5-4. The X5-4 is the bigger brother to the X4-4. Both the 4-4 and 5-4 have three variable clock speeds under loads — this means under low load the CPU’s (cores) operate at a higher speed and under the largest load at a speed which allows the chip to not over-heat.  They are both use Intel Xeon E7-8000 series of processors.

So why smaller John?  Isn’t bigger always better?  The challenge is when a company purchases two Exalytics machines and places  one and only one one Exalytics box in production. High availability is not an option at that point in time.  You can do some interesting architectures mixing Exalytics and non-Exalytics however the products you put on Exalytics in a given environment need a separate Exalytics to maintain availability.    Ideally your QA/Staging area is also the same architecture as your production environment to facilitate test of load, patches, and assure you that the test in your non-production equates to a like behavior in your production environment.

The infrastructure consultant is now brought in and we cringe that you have one physical machine (basket) with all your applications (eggs) in a given environment.

It makes for an unhappy Easter Bunny if he drops that critical basket and there isn’t another basket ready to run with.

What am I asking for?

Let’s have two half size Exalytics servers that are used to form a cluster (always) in a given environment. This 36 core hypothetical X5-2 Exalytics server can have 4 virtual machines on it for a total of 8 virtual machines across two servers in a given environment.

Web apps are clustered across each equally, enterprise WebLogic is licensed for those OBIEE users who want high availability.   For Essbase one node is active and one passive.

Check out the Oracle Database Appliance X5-2 – one of these with 768GB of ram in each node and we are good to go!

Do you have Exalytics questions? Feel free to reach out.

Read another Exalytics post


John A. Booth

Password Attack

Dusting some things off here post Kscope 15.  This doesn’t look like it saw the light of day.

As an aside 11.1.2.4 still has the password should contain no special characters clause.  Do read the last few sentences if you use products requiring the repository creation utilities also (RCU) as it has some slightly conflicting requirements.

Some days I wonder about my chosen profession.   Typically it’s the days where nothing seems to be working right (usually a specific install more than the whole set of things).

What happens when you allow your clients to choose passwords?

I’ve ran into two situations in the last year on the 11.1.2.1 release where passwords which were chosen by clients caused pretty un-fun installation woes.

Situation 1: Within two weeks of the release of 11.1.2.1.  The 25 character password — if password complexity is good surely a longer password is more secure!

Outcome 1: The password worked mostly.   The mostly part is where it gets fun.  This happened to break down on the security import from the old system.  My philosophy is don’t try to test the bounds of the software testers as you will find something somewhere that doesn’t deal

Situation 2: I have recently began suggesting clients key in their own passwords so that they do not feel the need to immediately go through a password change procedure.   Sometimes we have passwords, sometimes we don’t.

Outcome 2: More recent on a 11.1.2.1 with all the latest patches at the time I came upon an issue where several products were not configuring and/or deploying as expected.  This was a well known configuration, full physical servers, and after three re-installations one of which I decided to put in my own password.  Oddly enough the password I selected worked which didn’t contain <, >, %, &, ‘, “, or _.   Most of those characters if not escaped properly cause issues with SQL statements.  The ampersand and greater than/less than symbols cause issues for systems not escaping or converting for web.

To cap this off the Oracle RCU (Repository Creation Utility) doesn’t like passwords starting with numerals.   You use the RCU for products like Oracle Data Integrator or OBI/BI Foundation Suite.

The 11.1.2.2 Rapid Deployment Guide for Essbase shows:

The 11.1.2.1 Rapid Deployment Guide for Essbase shows:


Metavero EPM Starter (automation)

This is a draft in process post.

Function Start_EPM_Service
{
param ($service_name, $server, $port, $Form, $Label)

$socket = new-object System.Net.Sockets.TcpClient("192.168.1.1", $port) 

# If there is no connection to port then catch the exception and continue.
trap {
continue
}

If(-not $socket.Connected) {
    Stop-Service $service_name
    start-sleep -Milliseconds 500;
    If (Test-Path C:\Oracle\Middleware\user_projects\domains\EPMSystem\servers\$server\logs\$server.log) {
        Remove-Item  C:\Oracle\Middleware\user_projects\domains\EPMSystem\servers\$server\logs\$server.log
    }
    Write-Host "Starting $service_name"
    
    $initial = 0
    #Start WebLogic Admin Server and wait for next RUNNING

    Start-Service $service_name
    $Label.Text = "Starting $service_name"

    do {
        $Form.Refresh()
        start-sleep -Milliseconds 150;
    }
    until(Test-Path C:\Oracle\Middleware\user_projects\domains\EPMSystem\servers\$server\logs\$server.log)

    do {
    $f = select-string -path C:\Oracle\Middleware\user_projects\domains\EPMSystem\servers\$server\logs\$server.log -pattern "BEA-000360";
    $i = 0
        do {
            $Form.Refresh()
            start-sleep -Milliseconds 150;
            $i = $i + 1
        }
        until ($i -gt 20)
    }
    until ($f.count -gt $initial)

    $Label.Text = "$service_name started and online"

    do {
            $Form.Refresh()
            start-sleep -Milliseconds 150;
            $i = $i + 1
        }
        until ($i -gt 20)

}
else {
    Write-Host "Service $service_name already started."
    $socket.Close() 
}
}

# Show message box popup and return the button clicked by the user.
function Read-MessageBoxDialog([string]$Message, [string]$WindowTitle, [System.Windows.Forms.MessageBoxButtons]$Buttons = [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]$Icon = [System.Windows.Forms.MessageBoxIcon]::None)
{
    Add-Type -AssemblyName System.Windows.Forms
    return [System.Windows.Forms.MessageBox]::Show($Message, $WindowTitle, $Buttons, $Icon)
}

[void][reflection.assembly]::LoadWithPartialName("System.Windows.Forms")

$Form = new-object Windows.Forms.Form
$Form.Text = "EPM Starter"

$Label = New-Object System.Windows.Forms.Label
$Label.Text = "Starting"
$Label.AutoSize = $True
$Form.Controls.Add($Label)

$Form.BackColor= [System.Drawing.Color]::White

$pictureBox = new-object Windows.Forms.PictureBox

$pictureBox.Width = 141
$pictureBox.Height = 141
$Form.width = $pictureBox.Width + 120
$Form.height = $pictureBox.Height + 90

$point =  new-object System.Drawing.Point(50,30);

$pictureBox.Location = $point

$pictureBox.Image = [System.Drawing.Image]::Fromfile("C:\scripts\loading.gif")
$Form.controls.add($pictureBox)

$buttonClicked = Read-MessageBoxDialog -Message "Load SOA for Close Suite?" -WindowTitle "Got Consolidations?" -Buttons YesNo -Icon Question

$Form.Show()

if ($buttonClicked -eq "Yes") { 
    Start_EPM_Service Oracle_AdminServer AdminServer 7001 $Form $Label
    Start_EPM_Service Oracle_SoaServer soa_server1 8001 $Form $Label
}

Start_EPM_Service HyS9EPMServer_epmsystem1 EPMServer0 9000 $Form $Label

$Label.Text="Metavero EPM Test Drive Started, Enjoy!"

$point =  new-object System.Drawing.Point(10,20);
$pictureBox.Location = $point
$pictureBox.Width = 193
$pictureBox.Height = 47

$pictureBox.Image = [System.Drawing.Image]::Fromfile("C:\scripts\metavero.gif")

$tagLine = new-object Windows.Forms.PictureBox
$tagLine.Image = [System.Drawing.Image]::Fromfile("C:\scripts\tagline.png")

$point =  new-object System.Drawing.Point(8,77);
$tagLine.Location = $point
$tagLine.Width = 241
$tagLine.Height = 133
$Form.controls.add($tagLine)

$i = 0
        do {
            $Form.Refresh()
            start-sleep -Milliseconds 150;
            $i = $i + 1
        }
        until ($i -gt 100)

$Form.Dispose()
$Form.Close()

EPM Test Drive Quattro

Do you want to get your feet wet with Oracle’s EPM 11.1.2.4 however dread the long download time for the gigabytes of files or don’t have a server handy?

Oracle allows for use of their software for evaluation and prototyping in non-production environments with minimal restrictions and one of the easiest ways to take advantage of this is a cloud environment.

Cameron Lackpour and I embarked on the AWS cloud journey in late 2010 as on-demand servers for the KSCOPE labs.   A bit later I put out the first Metavero EPM Test Drive instance for 11.1.2.1 and later one for 11.1.2.2.   Being quite busy I skipped the 11.1.2.3 release and promised to get 11.1.2.4 hour on Day 1 (which I did).  I’ve refined it a few days late and am very happy with the result.

This is the first EPM Test Drive on Windows Server 2012 and Oracle 12c Enterprise Edition using IIS as the web server.  Control-ESC is your friend here on Server 2012.

There is now a GUI starter for a few key services which is needed to ensure startup order for the Close Mangement products (AdminServer, SOA, and then EPM in that order).  Several items start automatically.   This release is using the Oracle database so do be sure to use the shutdown command I provide on the desktop to avoid any corrupted databases.

Cameron has an article on this image.  Tim German should have something up soon on his blog.

I’ve put together a basic installation which includes most of the media downloads and the following products already deployed:

  • Close Suite (HFM/FCM/ARM)
  • Data Relationship Management
  • EPMA and Calculation Manager
  • Essbase Studio
  • FDM EE / ODI Studio
  • Financial Reporting Studio
  • Planning and Essbase

You may kick the tires and also deploy some of the other products already there or download and install anything else!

NOTE: This AMI is in no way intended for any production purposes and using it for such is against Oracle licensing rules.

For those of you who are Amazon EC2 savvy I’ve installed and deployed several of the products on the cloud; check out:

Use the Amazon US East Region to locate the AMI below.

AMI: ami-44e3a32c – epmtestdriveiv – Metavero 11.1.2.4 Hyperion EPM Test Drive; use c4.2xlarge instance (< $1 / hour)

Windows: epmtestdrive, epmtestdrive123
Shared Services: epm_admin, epmtestdrive123
Weblogic: epm_admin, epmtestdrive123
Oracle Credentials: sys / epmtestdrive123

NOTE: Remember to setup your security group to allow RDP (3389) and be sure to shutdown your Amazon machine when you don’t use.  < $1.00 / hour is inexpensive however can add up.  The image is set to shutdown at 03:00 central time each night just in case you forget.  Edit the task to change the shutdown time.

Use the below information and Cameron Lackpour’s nice walkthrough to get started.  Firefox works best with Amazon EC2.


John A. Booth

Company:     Infratects                http://www.infratects.com

Who moved my data?

An homage to “Who moved my cheese?”

One of my colleagues had a client request to turn on data auditing in Hyperion Planning 11.1.2.3.

Seems they have multiple people forecasting the same cost centers which was causing some confusion.

The “my data is gone” is always an interesting conversation; the last client conundrum of missing data I recall where planning data went “missing” was a defense contractor client — that root cause was someone changed substitution variables and voilà! presto chango no data show on the forms; always a fun conversation when your manager goes so this data is gone and the client isn’t real happy.   My first reaction is data doesn’t go missing; then the next reaction is I wish we had Essbase ssaudit on and we would know who cleared it, who changed it, or where it was before.

The interesting thing with the audit features of planning is it logs this information to a relational table within the given planning application database (schema on Oracle) however there is no query mechanism.

There are also no tools which come with planning other than Web Analysis which can query and put it into a nice presentable format.

So I mess around with Web Analysis for a bit, creating a relational data source and then in the wizard get stuck at the area you define dimensions and measures.  I phone a friend (or two as it turns out) one Mr. Collins and one Mr. Nader.  Dave quickly relates this technology isn’t recommended and Oracle (and Hyperion) hasn’t touched it since Brio wrote it.  He relates you probably want the SQL Spreadsheet vs trying to do it another way; turns out it’s very easy with this widget.

So how does it work?

Web Analysis New Document
Start a new Web Analysis Docuent
SQL Spreadsheet Widget
Drag the SQL Spreadsheet Widget to your canvas.

Setup your connection and query

Next save it to a handy area in your worskpace structure.

NOTE: One caveat; if this app were used for salary planning you may want to restrict who can see these reports.

P.S. Web Analysis is going away.

P.P.S One would expect Oracle would need a way for Planning and Budget Cloud Services to see the audit information.


John A. Booth