Why... Why... Why?
This blog is dedicated to documenting error resolution and other tidbits that I discover while working as a Consultant in the Oracle EPM (Hyperion) field. As much of my job revolves around issue resolution, I see an opportunity to supplement the typical troubleshooting avenues such as the Oracle Knowledgebase and Oracle Forums with more pinpointed information about specific errors as they are encountered. Beware, the information found in this blog is for informational purposes only and comes without any warranty or guarantee of accuracy.

EPMVirt: Create your own Oracle Hyperion Virtual Environment:

Friday, November 23, 2012

Financial Reporting Studio Patching in 11.1.2.2


The client tools have been repackaged in 11.1.2.2. Instead of requiring a special bloated installer, they come packaged as a streamlined .msi installer package. This greatly simplifies the distribution and patching process. However, keep an eye out for updated client installers when patching.

For example, The newest version of the financial reporting client comes inside in the patches.
Patch 13997553: Patch Set Update: 11.1.2.2.300 for Oracle Hyperion Reporting and Analysis for Financial Reporting

The studio installer is in this directory: 13997553/files/install/bin/financialreportingstudio.exe 

It is required to uninstall the old version and re-install the new version on all client machines.





Wednesday, November 21, 2012

EIS Console Crashes When Opening

In 11.1.2.2 If you Install EIS on a standalone machine without Essbase Server, the console will crash with

Essbase Integration Services Console
"Unable to initialize Essbase."



This turns out to be because msvcr71.dll is missing from the PATH in startOlapbldr.bat.

To fix this,
Navigate to
\Oracle\Middleware\EPMSystem11R1\products\Essbase\eis\console\bin

Edit startOlapbldr.bat

Find the PATH line and change it to include %HYPERION_HOME%\ccr\bin at the END of the specified path but before the %PATH% directive. Yes... The location in the PATH does matter...


For instance:
set PATH=%HYPERION_HOME%\bin-32;%ARBORPATH%\bin;%HYPERION_HOME%\ccr\bin;%PATH%

The console will now start up.

Wednesday, November 7, 2012

DRM Console in 11.1.2.2 Crashes When Opening


Problem:
DRM Console will not open - Application Crash Details:

Description:
  Stopped working

Problem signature:
  Problem Event Name: APPCRASH
  Application Name: drm-server-console.exe
  Application Version: 11.1.22302.3
  Application Timestamp: 50464102
  Fault Module Name: KERNELBASE.dll
  Fault Module Version: 6.1.7601.17932
  Fault Module Timestamp: 503285c2
  Exception Code: e0434f4d
  Exception Offset: 000000000000caed
  OS Version: 6.1.7601.2.1.0.272.7
  Locale ID: 1033

Read our privacy statement online:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
  C:\Windows\system32\en-US\erofflps.txt


Resolution:
This was simply a mistake preparing the pre-requisites for the install...
Install .Net 3.5.1 Features in Windows 

Saturday, November 3, 2012

Problem Accessing Windows Share on Node - BackConnectionHostNames

Windows 2008 R2 has some enhanced security which can get in the way of the Hyperion installation process. The problem is that the default settings will not allow network connections back to the node itself. For instance, if you create a windows share on a particular node, and then try to access the share from the same node, the connection fails. However, anywhere else on the network will be able to access the share.

This can come into play for the Windows Shares for FDM, Reporting and Analysis, and the Share for the LCM import_export assuming you are using the Hyperion servers to host the shares, rather than a remote share location. Additionally, you will notice that if you log into a server and try using the client tools to connect to Hyperion it will fail on one node, but work on the others. For instance, if you open FDM Workbench and try to connect to FDM it may show "Backup Load Balance Server is being used!". This is because the server cannot talk back to itself to connect to the primary load balance server.

The Solution:

http://support.microsoft.com/kb/926642
Error message when you try to access a server locally by using its FQDN or its CNAME alias after you install Windows Server 2003 Service Pack 1: "Access denied" or "No network provider accepted the given network path"

Additional info:
http://serverfault.com/questions/23823/how-to-configure-windows-machine-to-allow-file-sharing-with-dns-alias

Add the new key "BackConnectionHostNames" as a Multi-String Value in this registry path:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0

Enter the different names for the node using a newline as a separator:

server1
server1.fullyqualified.com



Sunday, September 23, 2012

Oracle Database 11g Installer Disappears After Prerequisite Checks


Recently I was attempting to install Oracle Database 11g on Windows 7 64 Bit.
The installer was not behaving by disappearing without a trace after running the prerequisite checks.

This forum post was helpful, https://forums.oracle.com/forums/thread.jspa?threadID=2190825

Specifically, I used the jreLoc flag to setup.exe and specified a different JDK.
Also, the flag did not like the JRE under "Program Files" I think due to the space in the name, so I had to copy my jdk to C:\ to make it work.


C:\database>setup -jreLoc "C:\Program Files\Java\jdk1.7.0_02"
Did not work...
However,
C:\database>setup -jreLoc c:\jdk1.7.0_02
works fine.

Wednesday, September 12, 2012

Unable to Open HFM Applications - A null reference pointer was passed to the stub.

Very strange error when opening any HFM Application. 

A null reference pointer was passed to the stub.

Error Code: -2147023116

File: CHFMwManageApplications.cpp;Line: 212;Ver: 11.1.2.0.0.2762;

Additional errors in the Windows Event Viewer:

Error 11; SYSTEM;<Num>-2147220966</Num><Type>0</Type><File>CHsxClient.cpp</File><Line>2417</Line><Ver>11.1.2.0.0.2762</Ver><ExErr>Unknown Error</ExErr></ESec></EStr>

Error 11; SYSTEM; 09/05/2012 12:26:01; HsvADMDriverSessionInternal.cpp; Line 355; <?xml version="1.0"?>
<EStr><Num>-2147467261</Num><Type>0</Type><DTime>9/5/2012 12:26:01 PM</DTime><File>HsvADMDriverSessionInternal.cpp</File><Line>355</Line><Ver>11.1.2.0.0.2762</Ver></ESec></EStr>



Turns out that the HFM Web node had an issue that corrupted the Financial Management ADM Driver. 

I ran the installer, chose re-install, and selected the HFM ADM component. This resolved the errors. 

Sunday, September 9, 2012

The Hyperion Config Tool list of database connections.


Here is a little insight into the list of database connections listed in the config tool. This much detail is not necessary in most cases, but it is good to have an understanding of how the information is stored. Also, this same information is stored in the Shared Services Registry, which provides a GUI to manipulate this information.




The list of databases available is stored in the Shared Services relational database, under the HSS_COMPONENT table. This table contains pretty much all the relationships in Shared Services including all the product metadata, so it is necessary to be more specific. To list only the database connections, limit the query use component_type_id 7.
    Select * from HSS_COMPONENT where COMPONENT_TYPE_ID=7;



This shows the list of database connections that are a 1 to 1 match with the config tool database connections above. To get more details regarding the database connections simply query the relational tables associated with the component_id:

select hss_component.component_name, hss_component_property_values.* FROM
    HSS_COMPONENT, HSS_COMPONENT_PROPERTY_VALUES  WHERE
    HSS_COMPONENT.component_type_id = 7 AND
    HSS_COMPONENT.component_id = hss_component_property_values.component_id;




This lists all the component properties of the database connections.

Here it is possible to view and manipulate any database related information directly from the underlying database connection. This is the same information that is stored in the Shared Services Registry which provides a GUI for manipulating this information.

This information can provide useful clues to help debug registry related errors and might be useful as an aid in manipulating database passwords providing the config tool is failing.

Thursday, July 26, 2012

EPM 11.1.2 - Tuning Spreadsheet

Here is a link I found that contains more information than I have ever seen in one place regarding tuning parameters for Oracle EPM. Some parameters are pretty standard, some explain typical errors you might see if not turned property, and others get very detailed.

EPM 11.1.2 - Tuning Spreadsheet
https://blogs.oracle.com/pa/entry/epm_11_1_2_1
Here is a copy for reference:
http://interopconsulting.com/files/EPM_11_1_2_1_TuningRecommendations.xls

Saturday, July 21, 2012

How to Configure Oracle Data Integrator(ODI) Agent as a Windows Service

When configuring ODI there is a step where you must add an Agent. This agent is a WebLogic J2EE application which is essentially deployed manually by following a specific set of instructions. The problem is, after following the instructions for the web deployment aspect it leaves you without a windows service to control the start and stop of the application.

While there are a few ways to make this into a Windows service, I would like to discuss the WebLogic tool installsvc.cmd. This is how to add native WebLogic deployments as Windows Services.

First, review and follow the instructions to deploy the typical J2EE Agent in WebLogic

ODI11g: Deploying and Configuring the ODI Agent as a Java EE Application



Next, How do you configure this as a Windows Service?

So after reviewing the documentation, it is relativity easy to use the WebLogic tool installsvc to add the windows service, 

There are scripts that can be used to set the environment variables and run the command line for using the installsvc command. Following the template, and setting the respective ODI related parameters gives this bat file that can be used to install ODI as a Windows Service



@rem *************************************************************************
@rem This script sets up a WebLogic Server instance as a Windows service.
@rem It sets variables to specify the domain name, server name, and optionally,
@rem user credentials, startup mode, and arguments for the JVM. Then the script
@rem calls the %WL_HOME%\server\bin\installSvc.cmd script.
@rem *************************************************************************
echo off
SETLOCAL
@rem Set DOMAIN_NAME to the name of the domain in which you have defined
@rem the server instance.
set DOMAIN_NAME=ODI-DOMAIN


@rem Set USERDOMAIN_HOME to the root directory of the domain's Administration
@rem Server, which is the directory that contains the domain's config.xml file.
@rem For more information about the root directories for servers, refer to 
@rem A Server's Root Directory.
set USERDOMAIN_HOME=D:\Oracle\Middleware\user_projects\domains\ODI-DOMAIN

set ADMIN_URL=http://localhost:7001


@rem Set SERVER_NAME to the name of the existing server instance that you want 
@rem set up as a Windows service.

set SERVER_NAME=odi_server1
@rem Optional: one way of bypassing the username and password prompt during
@rem server startup is to set WLS_USER to your system username and WLS_PW to 
@rem your password. The script encrypts the login credentials and stores them
@rem in the Windows registry.
@rem The disadvantage to this method is that changing the username or password
@rem for the server instance requires you to delete the Windows service and set
@rem up a new one with the new username and password. 
@rem If you use a boot identity file to bypass the prompt, you can change the
@rem login credentials without needing to modify the Windows service. For more
@rem information about bypassing the username and password prompt, refer to 
@rem "Bypassing the Prompt for Username and Password" in the Administration
@rem Console Online Help.
set WLS_USER=weblogic
set WLS_PW=xxxxxxx
@rem Optional: set Production Mode. When STARTMODE is set to true, the server
@rem starts in Production Mode. When not specified, or when set to false, the 
@rem server starts in Development Mode. For more information about 
@rem Development Mode and Production Mode, refer to 
@rem "Starting in Development Mode or Production Mode" in the Administration
@rem Console Online Help.
set STARTMODE=true
@rem Set JAVA_OPTIONS to the Java arguments you want to pass to the JVM. Separate
@rem multiple arguments with a space.
@rem If you are using this script to set up a Managed Server as a Windows service,
@rem you must include the -Dweblogic.management.server argument, which 
@rem specifies the host name and listen port for the domain's Administration
@rem Server. For example:
@rem set JAVA_OPTIONS=-Dweblogic.management.server=http://adminserver:7501 
@rem For more information, refer to
@rem "weblogic.Server Configuration Options" in the WebLogic Server Command
@rem Reference.


call D:\Oracle\Middleware\wlserver_10.3\common\bin\commEnv.cmd

set JAVA_OPTIONS=
@rem Optional: set JAVA_VM to the java virtual machine you want to run. 
@rem For example:
@rem set JAVA_VM=-server 
#set JAVA_VM=
@rem Set MEM_ARGS to the memory args you want to pass to java. For example:
@rem set MEM_ARGS=-Xms32m -Xmx200m
set MEM_ARGS=-Xms768m -Xmx768m
@rem Call Weblogic Server service installation script. Replace <WL_HOME> with
@rem the absolute pathname of the directory in which you installed WebLogic
@rem Server. For example:
@rem call "D:\bea\weblogic810\server\bin\installSvc.cmd"
call "D:\Oracle\Middleware\wlserver_10.3\server\bin\installSvc.cmd"
ENDLOCAL



Note the use of the parameter: set ADMIN_URL=http://localhost:7001
If you do not specify this parameter, then WebLogic thinks you are trying to start the admin server and will bail out when it does not find the admin server domain. In this case we are trying to connect to the odi managed server through the use of the ADMIN_URL parameter.

Now that the service has been installed, the service may or may not come up the first time...
Starting the Windows Service is pretty much is a black box. It is very likely this will not work the first time and there are no messages that appear to help debug the issue. 
A very useful command to debug the service is:

D:\Oracle\Middleware\wlserver_10.3\server\bin>beasvc.exe -debug "beasvc ODI-DOMAIN_odi_server1"

Debugging service ....... beasvc ODI-DOMAIN_odi_server1

Command Line: ....... -jrockit -Xms128m -Xmx256m  -Xverify:none -classpath "d:\Oracle\MIDDLE~1\patch_wls1036\profiles\default\sys_manifest_classpath\weblogic_pa...

This will stream output to the command line during startup of the WebLogic service and show you any errors. 



If an issue is encountered with the service, the respective .bat file to remove the Windows Service and try again is:
@rem *************************************************************************
@rem This script is used to uninstall a WebLogic Server service for a
@rem server instance that is defined for the current domain. 
@rem The script simply sets the DOMAIN_NAME and SERVER_NAME variables and calls
@rem the %WL_HOME%\server\bin\uninstallSvc.cmd script.
@rem *************************************************************************
echo off
SETLOCAL
@rem Set DOMAIN_NAME to the name of the domain that contains the server.
set DOMAIN_NAME=ODI-DOMAIN
@rem Set SERVER_NAME to the name of the server that you want to remove as
@rem a service.
set SERVER_NAME=odi_server1
@rem Call Weblogic Server service uninstallation script. Replace <WL_HOME> with
@rem the absolute pathname of the directory in which you installed WebLogic
@rem Server. For example:
@rem call "D:\bea\weblogic810\server\bin\uninstallSvc.cmd"
call "D:\Oracle\Middleware\wlserver_10.3\server\bin\uninstallSvc.cmd"
ENDLOCAL





If this fails to remove, ensure the DOMAIN_NAME matches the exact version that you used in the install script. In fact, even a rogue space at the end of the domain name can trip it up - so be careful of any trailing whitespaces.




I ran into an error with the CLASSPATH while starting the managed server, the error was

Failed to invoke startup class "JRF Startup Class", java.lang.ClassNotFoundException: oracle.jrf.wls.JRFStartup
java.lang.ClassNotFoundException: oracle.jrf.wls.JRFStartup

After some investigation, I found this thread, mentions a method to add some parameters directly to the installsvc.cmd script which will help the CLASSPATH resolve,

https://kr.forums.oracle.com/forums/thread.jspa?threadID=1009421

put this in installsvc.cmd
  call D:\Oracle\Middleware\user_projects\domains\ODI-DOMAIN\bin\setDomainEnv.cmd

Finally, I once again removed the Windows Service, added it again.... And ODI Agent starts up via Windows Service!




Tuesday, July 10, 2012

FDM Web - Primary Load Balance Server is unavailable


FDM Web server responds with Primary Load Balance Server is unavailable.

Windows Event Viewer displays:

The program svchost.exe, with the assigned process ID 720, could not authenticate locally by using the target name RPCSS/servername. The target name used is not valid. A target name should refer to one of the local computer names, for example, the DNS host name.

 Try a different target name.

Followed by this Error (same timestamp as previous error):

DCOM got error "2147942405" from the computer servername when attempting to activate the server:
{E652643D-6CC1-48AC-915D-01842B04F292}



Windows registry settings resolved the issue.
HKLM\system\CurrentControlSet\Services\Lanmanserver\parameters
DisableStrictNameChecking:DWORD=1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
DisableLoopbackCheck:DWORD=1


FDM Adapter Error: Adapter function [fConnect] failed.

Well, this was a waste of an afternoon... First, the obvious thing to check is if the adapter connection parameters are correct. However, this KB shows that this error can be generated even if everything is seemingly correct. This fixed my issue in 11.1.2.2 connecting FDM to HFM.


11.1.2.2 FDM FM11x-G6-A Adapter Integration Error "Error: Adapter Function [fConnect] Failed." [ID 1452164.1]
  Modified 12-JUN-2012     Type PROBLEM     Status PUBLISHED
In this Document
Symptoms
Cause
Solution
Applies to:

Hyperion Financial Data Quality Management - Version 11.1.2.2.000 and later
Information in this document applies to any platform.
Symptoms

When attempting to integrate with HFM by browsing for a target value in the mapping table the process fails with error:

Error: Adapter function [fConnect] failed.
Issue Clarification

Cause


From version 11.1.2.2, FM now allows for mutiple Custom dimensions in the application metadata (previously this was set at 4). Currently the active HFM application has four custom dimensions, however in the HFM Adapter by default, only Custom 1 and Custom 2 are active in the adapter. In order to successfully integrate the number of custom dimensions in the HFM Adapter must match the number of custom dimensions in the HFM Application.

Solution

1) Login to the FDM application via the workbench client
2) Expand Target System Adapters > FM11x-G5-6 > Dimensions
3) Right-Click on UD3 and choose "Properties". Check the "Active" box and click OK
4) Right-Click on UD4 and choose "Properties". Check the "Active" box and click OK

Sunday, July 8, 2012

FDM DCOM Setup Error in 11.1.2.2



After configuring FDM in 11.1.2.2 I was not able to bring up anything at http://host/HyperionFDM

The event viewer displayed some DCOM errors like:
The application-specific permission settings do not grant Remote Activation permission for the COM Server application with CLSID {E652643D-6CC1-48AC-915D-01842B04F292} and APPID {E652643D-6CC1-48AC-915D-01842B04F292} to the user NT AUTHORITY\ANONYMOUS LOGON SID (S-1-5-7) from address ..... This security permission can be modified using the Component Services administrative tool.

To fix,

  • Open Start -> Run -> Dcomcnfg
  • Expand Computer -> My Computer -> DCOM Config
  • Search for the id E652643D-6CC1-48AC-915D-01842B04F292 which showed up as an unnamed DCOM component toward the bottom
  • Right click -> Properties
  • On Each Permissions tab, select Edit, Anonymous Logon. Then Select the Remote Launch check box.





Error Opening New HFM Application in 11.1.2.2

After creating a new HFM application in 11.2.2.2 the new application would not open in Workplace.
Reviewing the logs, I was able to see this in Windows Event Viewer - Application Log:

ORA-01031: insufficient privileges CREATE OR REPLACE TYPE TYPE_NUMTABLE AS TABLE OF NUMBER

This indicates there is a new database permission in Oracle required for HFM in 11.1.2.2:

For Oracle:
grant create type to HFM_DB;



ODI Master Repository Creation



In trying to create the ODI Master Repository


Using this documentation,

http://docs.oracle.com/cd/E23943_01/core.1111/e16453/manual.htm
F.3 Creating the Master Repository

I ran into this error:
oracle.odi.setup.RepositorySetupException: Error while updating Schema Version Regsitry Entry for ODI. Check if user has DBA permissions.


However, the user did have DBA privileges. 


Maybe this one is obvious, but I ran into a situation where I was configuring the Master repository for ODI. I did not have the SA user in Oracle so I granted dba privilege to the user that I was using to configure the ODI Master repository. In other words, the "DBA" user and the Master Repository user were the same. 

The DBA user and the Master Repository user have to be two distinct users. As soon as I granted the DBA privilege to a different user and used two distinct ids,  the repository creation was successful. The error message stating the user must have DBA permissions is a little misleading in this case.

Monday, March 5, 2012

Enterprise Performance Management 11.x Configuration Utility Does Not Launch And Returns Error: "Inventory existence check failed for EpmSystem_username home was not found" [ID 1342764.1]

Cause

This error occurs when the currently logged in User Account is not the same User Account which installed the product.

The EPM Configuration Utility checks for an entry in inventory.xml for the User Account (i.e. "Administrator") who had installed the product.  However, the start-up of the EPM Configuration Utility is being done by an alternate User Account (logged in).

The EPM Configuration Utility file "inventory.xml" will contain an entry for the User Account (i.e. "Administrator")  that installed the product, but does not contain an entry for the current User trying to run the Utility.

Solution


Note: It is recommended that the configuration utility to be run by the same User Account who installed Enterprise Performance Management product suite.

To allow the alternate administrative User Account to run the EPM Configuration Utility, modify the "inventory.xml" file as per following steps.

NOTE: In this example, the User Account names being used are:
  • Administrator - User Account that installed EPM 11.x
  • HypAdmin - alternate administrative User Account who is to run the EPM Configuration Utility.

  1. Locate the "inventory.xml file within
    "<Oracle-Home>\Inventory\ContentsXML\"
  2. Create and retain a backup copy of the inventory.xml
  3. Open the inventory.xml file in edit mode (e.g. via notepad.exe)
  4. Locate the line:
    " <HOME NAME="EpmSystem_Administrator" LOC="C:\Oracle\Middleware\EPMSystem11R1" TYPE="O" IDX="3" "
  5. Copy the line, and paste below the original entry.  The result will appear as:

    </HOME>
    <HOME NAME="EpmSystem_Administrator" LOC="C:\Oracle\Middleware\EPMSystem11R1" TYPE="O" IDX="3" />
    <HOME NAME="EpmSystem_HypAdmin" LOC="C:\Oracle\Middleware\EPMSystem11R1" TYPE="O" IDX="3" />
    </HOME_LIST>

    Where the "EpmSystem_HypAdmin" is the new line added for the alternate administrative User Account "HypAdmin"
  6. Copy the .oracle.instances file:
    From "C:\Documents and Settings\Administrator"  
    To:     "C:\Documents and Settings\HypAdmin"
  7. Restart the EPM 11.x Configuration Utility for the alternate Administrative User Account (i.e. HypAdmin")

Sunday, February 26, 2012

FDM - "Object variable or With block variable not set"

This error can be common in Financial Data Manatement (FDM). 
Error Message:
"Object variable or With block variable not set".
The easiest way to reproduce this message is to open an FDM application via the web, Click Activities -> Maps. Click the export to excel option.

 There are two reasons I have seen for this message. The first deals with Microsoft Excel. It must be correctly installed on the FDM application server. It also must be a supported version. This error can come up if you have installed Office 2007 where only 2003 was supported. It can also pop up if a Office service pack is applied which is not supported. Such as installing Office 2007 SP3 when SP2 is only supported. Additionally, Oracle recommends uninstalling or disabling any plugins. If this error occurs, disable or uninstall any Office plugins like Smartview, Excel Add-In or 3rd party extensions. It is worth carefully going over the Excel install, reviewing any recent updates that may have been applied by Windows Update.

If an inadvertant service pack was applied, Microsoft has a tool which can uninstall Office Service Packs, called the "Service Pack Uninstall Tool". This knowledge-base article explains the syntax
http://support.microsoft.com/kb/954914

The second reason for this message can be due to permissions on the FDMData folder. The folder must be mounted. If it is a shared drive, open the share and try to write to it. Make sure the folder is set to to read/write and the access permissions allow the DCOM user to write to the folder.

Check the Windows Event Viewer for any permissions or DCOM related messages, typically in the Security tab.

Friday, February 3, 2012

Custom Hyperion Monitoring

The next step to proactively monitoring Hyperion after doing simple port monitoring is to simulate login behavior. Often, a service can be listening on the port, yet not responding. Only advanced monitoring can detect this. Advanced monitoring can be done with complex tools like Load Runner, but sometimes a simple script can replace expensive tools like Load Runner.


It is pretty simple to write some code that will simulate logging into workspace and generally validate other parts of the system.

Simulate Logging into Workspace: 


POST
/workspace/login
   sso_username=user
   sso_password=pw


Returns the SSO Token CDATA=..{SSO_TOKEN}....=


After parsing the SSO_TOKEN you can login to financial reporting with a POST to
   /hr/xml/HrConfig.jsp   passing in the sso_token variable 


Similararly, shared services can be checked in the exact same way, 
  POST to /interop/logon



Other simple pages to check using GET (no sso_token required)


/hfm/GlobalworkspaceNav/bpm/conf/HfmConfig.xml
/calcmgr/conf/CalcMgrConfig.xml
/HyperionPlanning/conf/HspJSConfig.xml



Once the basics are accounted for, even more complicated monitoring can be accomplished such as passing the sso_token to a smartcut to actually run a report. In this example it's best to have a test user set up in workspace where preview_pov is turned off, otherwise it will prompt for POV before displaying the report. 


For more details check out this post:
http://www.oracle.com/technetwork/oem/grid-control/overview/wp-ats-hyperion-load-testing-1-133775.pdf 



Tuesday, January 31, 2012

Opatch Not Displaying Correct Patches (Opatch Accuracy)

I was recently tasked with checking the patch level on a large scale implementation which I was not familiar with. The first action was to do the opatch -lsinventory on each server to get a list of applied patches. After meticulously categorizing each patch level indicated by lsinventory I discovered some inconsistencies. This led me to question the accuracy of the results of the lsinventory command. Consequently, I started to analyze the summary log file and discovered that some of the patch numbers were actually applied to the server which were not being returned by opatch. The summary file is:
G:\Oracle\Middleware\EPMSystem11R1\cfgtoollogs\opatch\opatch_history

In the summary file it lists the particular log file for each opatch operation.
For example,
G:\Oracle\Middleware\EPMSystem11R1\cfgtoollogs\opatch\opatch2012-01-17_17-37-26PM

So I dug a little deeper and analyzed the opatch logs for the patches which were not showing up in lsinventory. It appears the patch WAS successfully applied. In addition, to confirm my suspicions, I compared file by file using WinDiff directory comparison. Two servers, which should be identical, showed inconsistencies in the opatch lsinventory. The results showed, even with lsinventory implying the patch levels were different, the binary WinDiff comparison as well as the opatch logs confirmed the correct patches had been applied to both servers.

To further illustrate this point, the following knowledgebase article identifies that some commands can completely destroy the patch level information that opatch contains:
ID 1357748.1


IMPORTANT! Running createinventory.bat discards all patching information, reverting to a simple list of installed products, even if there are installed patches on the system. This does not affect the correct operation of the products and patches, but it could cause issues if a new patch must be applied over an existing patch. Because there is no record of the existing patch in the inventory, OPatch will refuse to apply the newer patch. The only way to restore the patch information in the inventory is to re-apply the patches.




What good is a patching tool which has the possibility of permanently truncating your patch history?

My conclusion is that the lsinventory does not necessarly give the correct results when it comes to patching, which is disappointing when using opatch as a patching tool.

So, assuming that opatch -lsinventory is inaccurate, what is an alternative method for determining the patch levels within the environment?  As indicated previously, each opatch operation is carefully logged. It is possible to review the logs and determine which patches have been successfully applied. However, over time many logs can accumulate.

Using windows grepping utility, AstroGrep, it is possible to quickly sift through the log directory and point out the patch instances which were successful. For example, search for the string, "check OK: Patch ID (.+) is registered"

Wednesday, January 25, 2012

EPMA - Troubleshooting

There are two main EPMA components, an Internet Information Services (IIS) component and a WebLogic component. It is helpful to know the difference to pinpoint issues in EPMA. Since they are completely different technologies, spending time looking into one part while the problem is in another is wasteful. One can narrow down where to look by these urls:
 
IIS Component:
http://hostname/hyperion-bpma-server/Sessions.asmx

Application Server Component(WebLogic/WebSphere)
http://hostname:19091/awb/conf/AwbConfig.xml

Deleting an EPMA HFM Application not Listed in the Application Library

Problem: The HFM EPMA application does not show up in EPMA application library in Workspace, yet it is listed in the list of HFM applications. The intention is to delete the rogue application because it is partially deployed and not used. Trying to delete the application from HFM gives a message saying "This application is not registered in Shared Services". The next logical step is to try and register the HFM application in Shared Services, however registration fails with the error:

This is a BPMA application. The functionality must be done through BPMA.
Show Details:
Error Reference Number: {F79F0798-39B7-4565-91A3-3E929F9F16FD}

Since the application is not listed in the EPMA application library, it is not possible to re-register the application. Here's a trick to enable the registration with Shared Services in order to delete the application from HFM:

Open the HFM relational database, Each application has it's own set of tables.
Look for the APP_NAME_PROPERTIES table,

Change HFM APPMODE property from EPMA to HFM in the table. Be sure to commit any changes.

This flips the application back to a normal HFM application. Next, open Workspace Classic Application Administration and register the application.

Finally, in Shared Serivces provision yourself as administrator to the HFM application and delete the application from HFM.



Tuesday, January 10, 2012

SSL and Load Balancing in 11.1.2.1 OHS -> IIS

In 11.1.2.1 if you are using SSL and Load Balancing from OHS to IIS (ProxyPass, ProxyPassReverse) then you will need this knowledgebase article. The OHS to IIS connection is used for the Hyperion modules, HFM, FDM, DRM, EPMA. The solution disables the SSL Caching because it's not handled correctly and you will receive a ton of errors.

Financial Management Error "Bad Gateway. Request could not be processed. Invalid response received by proxy or gateway server" When Browsing Content Within an Application [ID 1385480.1]

Applies to:

Hyperion Financial Management - Version: 11.1.2.1.000 and later   [Release: 11.1 and later ]
Information in this document applies to any platform.

Symptoms

Users receive the following error messages a few minutes after they start accessing Financial Management (HFM) application content (e.g. opening HFM applications, opening HFM web forms, etc.):

Bad Gateway
Request could not be processed. Invalid response received by proxy or gateway server


Notes:
  • Users access the Workspace user interface through OHS (Oracle HTTP Server),
  • SSL has been enabled on both OHS (Workspace web server) and IIS (HFM web server).

The below error message is being returned in the OHS error log at the time of the issue:

[tid: 3044] [user: SYSTEM] [VirtualHost: epmdev.hyperion.com:0]
ssl_engine_kernel.c:2363: Inter-Process Session Cache: request=REM status=OK
id=65376265333730333164633838663538373 (session dead)^M
[2011-11-23T22:28:23.2350-08:00] [OHS] [NOTIFICATION:32] [OHS-9999] [core.c]
[host_id: vm0sgennai127] [host_addr: 192.168.0.127] [pid: 4440] [tid: 3044]
[user: SYSTEM] [VirtualHost: epmdev.hyperion.com:0] (OS 10054)

Cause

The error code 10054 visible in the OHS log file indicates that the error occurred on the other side of the connection (i.e. on the IIS side in this case), causing the connection to drop. In particular, IIS is dropping the connection with OHS on asp pages during the SSL handshake, causing users to receive a '502 Bad Gateway' error message when attempting to access HFM content through Workspace.

This issue only occurs if the session cache is enabled on the OHS side. The session cache allows existing SSL sessions to be resumed ('cheaper handshake'). While resuming existing SSL sessions between the OHS and the IIS components, IIS drops the connection during the handshake. This is when the issue occurs.

Solution

IIS is unable to handle the resuming of cached SSL sessions properly. Thus, disabling such session caching prevents the issue from occurring.

Please find below the steps to be followed for disabling the session caching on the OHS side:

Note: These steps have to be followed on any server hosting the Oracle HTTP Server (OHS) component.
  1. Navigate to the below folder:
    <ORACLE_HOME>\Middleware\user_projects\epmsystem1\httpConfig\ohs\config\OHS\ohs_component
  2. Make a backup copy of the file SSL.conf
  3. Open SSL.conf in a text editor (ie. Windows Notepad)
  4. In the file find the following section:
    # Inter-Process Session Cache:
    # Configure the SSL Session Cache: First the mechanism
    # to use and second the expiring timeout (in seconds).
    SSLSessionCache "shmcb:${ORACLE_INSTANCE}/diagnostics/logs/${COMPONENT_TYPE}/${COMPONENT_NAME}/ssl_scache(512000)"
    SSLSessionCacheTimeout 300
    Modify this file section, so that it looks like this:
    # Inter-Process Session Cache:
    # Configure the SSL Session Cache: First the mechanism
    # to use and second the expiring timeout (in seconds).
    # SSLSessionCache "shmcb:${ORACLE_INSTANCE}/diagnostics/logs/${COMPONENT_TYPE}/${COMPONENT_NAME}/ssl_scache(512000)"
    # SSLSessionCacheTimeout 300
    SSLSessionCache none
    SSLSessionCacheTimeout 15
  5. Save and close the file.
  6. Restart the OHS component for the changes to be taken into account - for instance by restarting the 'Oracle Process Manager (ohsInstanceXXXXXXXX)' service.

Friday, January 6, 2012

Oracle EPM with SSL

Configuration SSL for Hyperion is a bit of an art form. It is somewhat cumbersome and can lead to many hours of debugging when something goes wrong. For those looking for a good start to SSL check out this link:

Installing and Configuring Oracle® Hyperion Enterprise Performance Management System 11.1.2 with SSL Enabled on All Layers


http://www.oracle.com/technetwork/middleware/performance-management/tutorials/index-087654.html

Sunday, January 1, 2012

Configuring the Financial Reporting Print Server in 11.1.2.1

The Print Service comes with the FR Client installation package on edelivery.oracle.com.

It is not installed automatically... Follow these instructions:

Configuring Financial Reporting Print Server


Financial Reporting Print Server is used to generate PDF reports. Before you configure Print
Server, ensure the following:
• At least one Planning server is configured and running
• Financial Reporting Studio is installed on a client host machine (CLIENTHOST1)
To configure Print Server:
1. Using the deployment account, log into the EPM System Clients host
(CLIENTHOST1).
2. Using a text editor, open C:\Program Files
(x86)\Oracle\FinancialReportingStudio\products\financialreporting\install\bin\FRSetupPrintServer.properties.
3. Enter the following information:
FRWebServer=http://epminternal.mycompany.com:19000
AdminUser=admin
AdminPassword=EPM Administrator’s password
4. Save and close FRSetupPrintServer.properties.
5. Run FRSetupPrintServer utility.
The print server should be ready to use after you run the FRSetupPrintServer utility.

There is a log file generated by this utility and you should check it to be sure it ran correctly. Also, in control panel-> printers on the Financial Reporting node you should see some virtual printers named FRPrint(1,2,3...). If there are no printers listed - the script is failing... Also check the windows services to ensure the FR print service is listed.

HFM - Registry Key that has been Marked for Deletion

Problem Description:
HFM Application will not open from workspace - this was not reported by the end users and caught before it was an issue - error recieived is:

Warning Illegal operation attempted on a registry key that has been marked for deletion.
Code: -2147023878

Description: An error occurred processing the result from the server.

Trace: Error Reference Number: {61D370EC-BF81-46B9-9D06-B2323C58653C}<BR>Num: 0x800703fa;Type: 0;DTime: 9/11/2011 9:10:10 AM;Svr: server;File: CHsxClient.cpp;Line: 497;Ver: 11.1.2.1.000.3082;<BR>Num: 0x800703fa;Type: 0;DTime: 9/11/2011 9:10:10 AM;Svr:server;File: CHsxClient.cpp;Line: 899;Ver: 11.1.2.1.000.3082;<BR>Num: 0x800703fa;Type: 0;DTime: 9/11/2011 9:10:10 AM;Svr: server;File: CHsxClient.cpp;Line: 3671;Ver: 11.1.2.1.000.3082;<BR>Num: 0x800703fa;Type: 0;DTime: 9/11/2011 9:10:10 AM;Svr:server;File: CHFMwManageApplications.cpp;Line: 2722;Ver: 11.1.2.1.000.3082;


Resolution:
 Symptoms
In Financial Management (HFM) application , you may receive the following error message when attempting various HFM related operations such as Journal Entries, connecting via Smartview to HFM, or with Financial Reporting:
Illegal operation attempted on a registry key that has been marked for deletion.

An error has occurred. Please contact your administrator.
Error Number:70
Error Description:Permission denied
Error Source:Microsoft VBScript runtime error
Page On which Error Occurred:/hfm/loadextract/ExtractJournals.asp
Changes
This issue occurs only in EPM systems deployed on Windows 2008 server, so if a OS upgrade had occurred, this error may be thrown.
Cause
The identity user initially logged on to the server when the application launched. The issue happens when the identity user logs off and the COM+ application can no longer read registry keys in the profile of the identity user because of a new User Profile Service functionality of forcing the unload of the user profile on Windows 2008 when the user logs off.
Solution
To resolve this issue, make the following change on all Financial Management servers in the environment:
1. Run group policy editor (gpedit.msc)
2. Expand to: Computer Configuration -> Administrative Templates -> System -> UserProfiles -> Do not forcefully unload the user registry at user logoff
3. Check the settings and change it from “Not Configured” to “Enabled”
4. Reboot the servers

 

Creating an FDM Application Without the DBA

For organizations where getting a DBA's dedicated time is close to impossible, here are some notes regarding how to go about creating the FDM application while minimizing requirements for the DBA.


FDM: Does not need DBA privileges to create an application, assuming the schema/tablespaces are created ahead of time.

Create the user id, and schemas for FDM. Oracle recomends this be in a new instance of Oracle, not with the other EPM products, so that a multiple of performance and other settings can be applied at the instance level which may help FDM.

These Oracle Privileges are safe for just about any Hyperion product - if possible, set these for every schema:
Create Procedure, Create Sequence, Create Session, Create Table, Create Trigger, Create View, and Query Rewrite.
Separate tablespaces are recommended:
   FDM (Default)
   FDM_WORK_TABLES
   FDM_WORK_TABLE_INDEXES
   FDM_DATA_MAP_SEG
   FDM_DATA_SEG

There is an entire hundred page DBA guide for FDM:


If something goes wrong and there is already a partial application with tables in the FDM schema and you need to recreate an application in the same schema:

Oracle Knowledgebase:
Message "DATABASE/SCHEMA ALREADY EXISTS" When Creating a New Financial Data Quality Management Application [ID 966752.1]



Each FDM Application requires a UNIQUE/BLANK user schema inside the Oracle DB. If the message comes back stating that it already exists then it is not unique or blank and already contains data.... and this violates the FDM policy.

Perform either of the following actions:
1. Drop/Recreate the User Schema
2. Create a new User Schema

You can run sqldeveper to export the schema metadata including “DROPS” which will allow you to drop all tables, indexes, keys…etc. However this leaves some objects in the recycle bin that fdm is finding still when trying to create the app saying “schema already exists”

Alternatively you can execute the following query against the User Schema being used for the FDM Application to ensure that zero records are returned; indicating it is blank:

select * from user_objects;
or
select OBJECT_NAME from user_objects;



There are some objects that might be left in the recycle bin of type "LOB" even if the schema is "clear"



SQL> purge recyclebin;

Recyclebin purged.


App should now create successfully.