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:

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.