Quantcast
Channel: Hyperion Error of the Day
Viewing all 102 articles
Browse latest View live

I'm presenting at ODTUG's Kscope 13 in New Orleans

$
0
0









I'm presenting at ODTUG's Kscope 13 in New Orleans! Join me @ the best conference for developers put on by developers http://kscope13.com

How to Turn New Recruits into Oracle EPM Support Gurus
When: Jun 26, 2013, Session 16, 4:15 pm - 5:15 pm
Oracle EPM requires a knowledgeable team to provide production support due to its criticality as a service. Typically skill levels vary in the team as resources are pulled from other areas or are required to support multiple services. Consequently, the need for infrastructure training is a recurring theme in an organization. This presentation covers how to explain Hyperion and its architecture in a way to fully engage new support staff. It includes getting started with EPM modules, logs, and troubleshooting.

epmsys_registry Command Line Options

$
0
0
The epmsys_registry command is the key to manipulating the insides of the EPM System. However, it is not well documented. Here are a few ways to further explore the tool...

A command that is useful is the host report. This report can show you what hosts are stored inside the epm registry and what those hosts are being resolved to on each node in the environment. This is useful if you have DNS names or virtual names inside the registry and how those names are being resolved on the host itself. Over time, host resolution may change based on host file entries, DNS changes, failover scenarios, load balancing...etc. The report can identify host related issues buried inside the registry.


epmsys_registry viewhosts

Hosts in EPM Registry
HOST NAME IN EPM REGISTRY           HOST NAME AS RESOLVED ON THIS MACHINE
*************************                            *************************************
1       host1.full                                      host1.full
2       VirtualIP                                       host2.full



Generate a deployment report
  - Creates a report enumerating your web deployments and a history of deployment activities.
epmsys_registry report deployment

Components of the report:
  • Logical Web Addresses
  • Application Tier Components
  • EPM Deployment Topology Report 
  • EPM Deployment History Report
  • User Directories - SSO Not Enabled
  • Database Connections
  • Data Directories
Sample Command Line Usage:

epmsys_registry deletecomponent #8dafd4d781a01633a4a713b43baa1b1S6c71
    The component has been removed. However the linked components remain.

epmsys_registry view FOUNDATION_SERVICES_PRODUCT

Change the database password in the EPM Registry:
epmsys_registry updateencryptedproperty #64f85ee85aef2a62eccaf7d13c02cb3445S76a3/@dbPassword testpw
    The new value of the property has been encrypted and updated on the component.

Hierarchical changes:
epmsys_registry createlink #18349408fd0bc34c2226d26dafds88d019S7a87 #834940894494fdcS6fe8c90313b3e28c59dS6d7f

-- first argument is parent component , second is the child link that will be removed.epmsys_registry removelink #18349408fd0bc34dfda33b3e28c59dS6d7f #8349408fd0bc34addd26213aad88d019S7a87


Full List of Command Line Options
 view
 viewencryptedproperty (and yes this does display the unencrypted password)
 viewhierarchy
 addproperty
 updateproperty
 removeproperty
 addencryptedproperty
 updateencryptedproperty
 addfile
 updatefile
 removefile
 createlink
 removelink
 createcomponenthierarchy
 deletecomponent
 updatehost


Error Saving User Preferences in Planning

$
0
0
While performing an upgrade to the planning application, the new application is facing an error saving the user preferences in planning. 

When trying to save the user preferences the following end user error is displayed:


"The SQL operation failed. Check logs for details.
User Preferences have been saved."

Diving into the Planning logs identifies the actual error message:

java.sql.SQLSyntaxErrorException: ORA-00904: "ENABLE_MRU_SCREEN": invalid identifier


This error was found searching the knowledge base, 
Unable to Save Form Preference in Planning After Upgrade [ID 889744.1]


According to Oracle:
This issue has been caused by migrating the application and a column must be added to HSP_USER_PREF table.

One would think that when you upgrade the application, the schema update it performs when logging in for the first time would add this column, nevertheless...

The following SQL was executed against the planning application database to add the appropriate column.

ALTER TABLE HSP_USER_PREFS ADD ENABLE_MRU_SCREEN INTEGER DEFAULT 1 NOT NULL

EPM System Configurator Crashes During EPMA Configure Database

$
0
0

I just saw this one on the forums. Since I spent some time scratching my head on the issue and others are starting to see it I thought I would write it up...

In a patched 11.1.2.2 environment while configuring the EPMA database connection in config tool the config tool will crash.

In the configtool.log you would find:
[2013-01-30T11:34:00.420-05:00] [EPMCFG] [TRACE] [EPMCFG-01758] [oracle.EPMCFG] [tid: 16] [ecid: 0000JmCJgspEwGIFmrADS31H2KhK000003,0] [SRC_CLASS: com.hyperion.config.wizard.impl.DBConnectionForm] DB type is Oracle
[2013-01-30T11:34:00.420-05:00] [EPMCFG] [ERROR] [EPMCFG-01020] [oracle.EPMCFG] [tid: 16] [ecid: 0000JmCJgspEwGIFmrADS31H2KhK000003,0] [SRC_CLASS: com.hyperion.cis.config.Configurator] Error: [[
java.lang.NoClassDefFoundError: com/hyperion/cis/ISMPWizardServices
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at com.hyperion.cis.config.Configurator.loadClass(Configurator.java:172)
at com.hyperion.cis.config.Configurator.loadProductDBConfigurators(Configurator.java:201)
at com.hyperion.config.wizard.impl.DBWizardState$1.validate(DBWizardState.java:348)
at com.hyperion.hit.wizard.Wizard$NextClass.run(Wizard.java:531)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: com.hyperion.cis.ISMPWizardServices
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 7 more

]]



The reason is that the Oracle patch has broken the jar file AWBConfig.jar located
d:\oracle\Middleware\EPMSystem11R1\products\Foundation\BPMA\Common

The broken EPMA patch number is 14031912

There are missing classes in the patched , newer version of this jar

To fix the config tool you can make a copy of this existing jar and replace the older unpatched version. To find the old version search,
\oracle\Middleware\EPMSystem11R1\.patch_storage\ for AwbConfig.jar

To confirm this, look at the size of the current jar and the older jar - the new one is 158k and the old one was 317k - obviously the new one is missing some classes.

Once you are done with the config tool put the "newer" one back.

Browser Setting Recommendations for 11.1.2.2

$
0
0
I have been working with users facing strange issues in their browser for 11.1.2.2. These range from stuck "Loading..." prompts in Planning, Missing Arrows in Shared Services and disabled menus in DRM. This post will explain some recommended browser settings to prevent such issues.

The first main setting is to disable compatibility mode in Internet Explorer. This applies for both IE8 and IE9, though the steps are a slight bit different.

To make this harder - IE comes with a not well known default setting that automatically enables compatibility mode for intranet sites - where Hyperion typically resides. Looking carefully at the dialog box below see the option by default "Display intranet sites in Compatibility View". This should be unchecked for Hyperion! Hyperion will not work in Compatibility Mode.

Under Internet Explorer:
  Page -> Compatibility View Settings, Uncheck the box "Display intranet sites in Compatibility View".Here is an additional link to help for IE9 users to get the "Page" menu to display:
Disabling Compatibility Mode in IE9





Also, the following KB article has a ton of other recommended settings such as disabling popups, setting Hyperion as a trusted site, and lowering your security settings to allow specific functions:
      Oracle support Doc "Internet Explorer (IE7, IE8 and IE9) Recommended Settings for Oracle Hyperion Products [ID 820892.1]"

EPM Config Tool: The next hosts are unreachable.

$
0
0

When opening the config tool in 11.1.2.2 the utility actually tries to connect to every host in the EPM Registry. It show the error message if any hosts are unreachable.

I started down this path,

Checking closer it appears that the config tool uses the Java InetAddress isReachable() method.
Looking into the doc on the class,
http://docs.oracle.com/javase/6/docs/api/java/net/InetAddress.html


public boolean isReachable(int timeout)
throws IOException
Test whether that address is reachable. Best effort is made by the implementation to try to reach the host, but firewalls and server configuration may block requests resulting in a unreachable status while some specific ports may be accessible. A typical implementation will use ICMP ECHO REQUESTs if the privilege can be obtained, otherwise it will try to establish a TCP connection on port 7 (Echo) of the destination host.

I wrote up a simple test which confirmed the issue (Can't connect):

import java.net.InetAddress;
public class test
{
    public static void main(String[] args)
    throws Exception
    {

  
     InetAddress address =  InetAddress.getByName("hostname.fullyqualified.com");

     if (address == null) {
         System.out.println("Is null");
     }


     else if (! address.isReachable(3000)) {
         System.out.println("Cant connect");
     }

     else { 
         System.out.println("Host is reachable");
     }

     }


}


The host is pingable so ICMP traffic is being allowed. It's puzzling why the Java method cannot connect.

Further research on the web brings up some articles regarding why the isReachable method might fail, 
http://stackoverflow.com/questions/5126697/java-networking-issue

So this sort of pinpoints a firewall issue - Next I disabled the Windows Firewall - The method began working! 

About this time I came across John Goodwin's article while researching:
John had gone down almost the exact same path, written up nicely in his blog.

Final thoughts: 
  Why does Oracle introduce a new check in the config tool using a strange ICMP/TCP method that has nothing to do with the actual requirements of EPM? Crazy... Assuming you are implementing firewalls - you will need to include this as an additional requirement. 


Learning EPM - Level Up

$
0
0
I have been spending time lately focused on how to bring seasoned IT folks up to speed in Oracle EPM. I wanted to help identify specific levels of familiarity with EPM and help folks who are in one tier have resources to help go into more depth in their quest for EPM knowledge. The following post is a work in progress. The expectation is that a more polished version will eventually end up as part of a future presentation.

Levels of EPM Skills


Basic Operational Skills -
   
No expectation prior EPM knowledge
   This is good for the typical "on call" resource who is not specializing in EPM.
  1. Familiar with start and stop operations - specific to company
  2. Familiar with the architecture diagrams for each ENV - specific to company
  3. What's up and whats down - able to identify products that are not running and use the startup script to start or restart components - familiar with monitoring specific to company
Basic EPM Admin Skills
  1. Has logged in to each EPM server
  2. Has admin access to each product and has logged into each EPM module
  3. Familiar with EPM modules
    Knows the basic end user functionality of each EPM module
    Comfortable explaining end user interactions
    Can explain the importance of EPM regarding the business and why it is critical for good infrastructure support
  4. Knowledge of jobs which run in the environment - LCM exports, FDM loads, etc. - specific to company
  5. Ability to execute basic validation procedures to determine if the ENV is working as expected after planned maintenance or during issue resolution.
  6. Traversing the Oracle documentation - Read up!
    http://docs.oracle.com/cd/E17236_01/index.htm

    EPM Module Admin Guides
    example: http://docs.oracle.com/cd/E17236_01/epm.1112/esb_dbag.pdf
    EPM Module User Guides
    example: http://docs.oracle.com/cd/E17236_01/epm.1112/sv_user.pdf

    Infrastructure:
    -Support Matrix:   http://docs.oracle.com/cd/E17236_01/epm.1112/epm_install_start_here_1112200.pdf
    -Installation and Configuration
    http://docs.oracle.com/cd/E17236_01/epm.1112/epm_install_1112200.pdf
    -High Availability and Disaster Recovery
    http://docs.oracle.com/cd/E17236_01/epm.1112/epm_high_avail_11121.pdf
    -Security and SSL
    http://docs.oracle.com/cd/E17236_01/epm.1112/epm_security_11121.pdf
  7. Experience Installing and Configuring basic EPM environments
Intermediate EPM Skills
  1. Understands Opatch
    Can evaluate patch readme's
    Understands patch prerequisites and orders of patches
    Knows difference between patch sets vs one off patches.
    Understands where the patches should be applied - potentially 3 different places
       Product web
       Product app
       WebLogic admin node
  2. Understands implications of running config tool
     Resets registry heap settings
     Potentially wipes out custom changes
  3. Understands load balancing and SSL setup
    Key files:
       ssl.conf - basic SSL settings - defines location of wallet and SSL port
       mod_wl_ohs.conf - The Web->WebLogic forwarding
       httpd.conf - Web->IIS fowarding
    Files are auto generated when running web configuration in config tool - custom changes are blown away
  4. Knows what happens behind the scenes during the proces of deploying an application in config tool
  5. Can perform SSL certificate rotation based on predefined procedures
  6. Can perform password rotations
    a. database accounts
    b. EPM system accounts (admin, essadmin, jobs)
    c. windows DCOM account
  7. Familiar with oracle support - able to follow tickets from inception to resolution based on oracle's instructions.
  8. Knowledge of log files locations to troubleshoot issues.
Advanced Skills

  1. Can put together instructions for SSL implementation and rotation
  2. Can create architecture to implement high availability and the architecture can be tested to achieve high availability
  3. Create and refine DR process for EPM
  4. Troubleshooting
    Quickly understands interaction between products and can evaluate error messages from logs to quickly resolve issues
  5. Able to plan and implement a upgrade from one EPM version to another
  6. Begins to train others in the art of EPM infrastructure
EPM Guru (subjective)

  1. Ability to reach out and solve others problems
  2. Takes responsibility for infrastructure issues
  3. Multitasking - understands most EPM modules and is able to help on every front 
  4. Begins to see EPM at the "code" level - can start to evaluate why issues are occurring based on how the code is structured.
  5. Historical reference of EPM - watching EPM evolve over time and multiple versions can help bring invaluable context to situations.


Error Deploying Applications in Config Tool

$
0
0
When trying to deploy to application server, config tool crashes with "An unexpected error occurred and the application will have to shut down. Review the error log, correct the error condition and re-launch the application."

Inline image 1



The first thing to check is the config tool log. Digging into the log reveals,
[SRC_CLASS: com.hyperion.hit.wizard.Wizard] trace: Unexpected error:[[
java.lang.NullPointerException
at com.hyperion.hit.tool.deploy.utils.UIPortUtil.resetData(UIPortUtil.java:183)
at com.hyperion.hit.tool.deploy.utils.UIPortUtil.<init>(UIPortUtil.java:65)
at com.hyperion.hit.tool.deploy.utils.UIPortUtil.getInstance(UIPortUtil.java:48)
at com.hyperion.config.wizard.DeploymentField.getAppServerDeploymentData(DeploymentField.java:309)
at com.hyperion.config.wizard.DeploymentField.<init>(DeploymentField.java:70)
at com.hyperion.config.wizard.impl.DeploymentForm.<init>(DeploymentForm.java:57)
at com.hyperion.config.wizard.impl.DeploymentState.initializeBeforeShowOnNext(DeploymentState.java:58)
at com.hyperion.hit.wizard.Wizard$NextClass.run(Wizard.java:551)
at java.lang.Thread.run(Thread.java:662)
]]

Upon further investigation - this logic is basically trying to enumerate the logical web applications for each host. While iterating through the logical web applications, the config tool encounters a null value and crashes. The logical web applications are found in the Shared Services Registry. So I ran the registry-cleanup utility,

NOTE: The registry-cleanup utility has a high probability of corrupting your environment. Take a database backup of your Shared Services/Foundation schema before starting and be prepared to take downtime to restore the schema if required.
Essentially, the cleanup utility found some invalid entries to delete - so I removed them one at a time until the config tool worked again.

registry-cleanup.bat
Launching the Hyperion Registry Cleanup Utility, please wait...
Enter the password for Shared Services Database :
Reading rules XML file: \Oracle\Middleware\EPMSystem11R1\common\config\11.1.2.
0\resources\registry\cleanup\default-rules.xml
Found 6 rules

Looking for components matching rule: Remove components without parent HOST node
Processing results for rule: Remove components without parent HOST node

Do you really want to delete WORKSPACE_WEBAPP(WORKSPACE_WEBAPP):808d62cd746781a0
S201b96e113e13916fd3S6ae7 component?
Y - Yes
A - Yes, for all components matching this rule
N - No, skip this component
S - No, skip this and all the next components matching this rule
I - Show full component info
y
Deleting: WORKSPACE_WEBAPP(WORKSPACE_WEBAPP):808d62cd746781a0S201b96e113e13916fd
3S6ae7


This fixed the error in config tool.






Bug in 11.2.0.3 Oracle Client Installation Prevents HFM Configuration

$
0
0

The 11.2.0.3 version of the Oracle Client on Windows seems to have a unique bug where it has trouble registering the OLE DB provider in windows. This effects both HFM and FDM database configuration tasks. First, HFM will not pass configuring the db in the config tool. Second, FDM will not be able to create an application - throwing a very generic message saying check your database connection.

This essentially means that if you create a new UDL file manually, and look at the providers list, the Oracle Client provider is not shown.

The easiest way to see this issue, as mentioned above is to create a new text file, with zero bytes. Then rename it to test.udl. When you double click it should let you test the OLE DB connection. This is a good way to test any HFM DB related connection issue. However, if this bug exists, you will quickly discover that the Oracle provider is missing.

Please refer to this KB for more info:

Installing the 11.2.0.3 Oracle Provider for OLE DB from the Client Install Media Does Not Properly Register the Provider [ID 1380742.1]

For reference, the 64 bit (HFM) command to register the OLE DB would be

D:\>regsvr32 d:\oracle\product\11.2.0\client_2\bin\OraOLEDB11.dll

remember to refer to the KB article for the 32 bit command for FDM to work too.


Here are some more symptoms of the issue:
UDL: "Test connection failed because of an error in setting the window handle property. Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done."



From Hyperion Configtool.log (Error configuring HFM database connection):

[SRC_CLASS: com.hyperion.hfm.config.hfmregistry.HFMRegistry] Error while configuring HFM Database: {0}[[
java.lang.RuntimeException: Oracle DB registry entry is not available
at com.hyperion.hfm.config.hfmregistry.HFMRegistry.configureHFMDataBase(HFMRegistry.java:754)
at com.hyperion.hfm.config.HfmDbConfigurator.configure(HfmDbConfigurator.java:150)
at com.hyperion.config.wizard.impl.RunAllTasks.executeDbConfigTask(RunAllTasks.java:929)
at com.hyperion.config.wizard.impl.RunAllTasks.execute(RunAllTasks.java:482)
at com.hyperion.config.wizard.impl.RunnAllTasksState.run(RunnAllTasksState.java:91)
at java.lang.Thread.run(Thread.java:662)

]]


Additionally, this post is also talking about the same issue, though perhaps not the best solution:

Workspace (RA) Hangs when Implementing Firewall

$
0
0

Recently, I was implementing RA through a firewall. I discovered that Workspace would hang during login.

Looking through the logs I noticed some stuck threads in the RAFrameworkWeb logs,
which is more than the configured time (StuckThreadMaxTime) of "600"seconds. Stack trace:Thread-204 "[STUCK] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)'"<alive, in native, suspended, priority=1, DAEMON> {   java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:???)....java.lang.Class@10a184ba[thin lock]   com.sqribe.WS.WebSQRIBE.loginToRepository(Unknown Source)
This means something is unable to connect during RA initialization. 

Checking the Windows firewall for dropped packets (after configuring logging of dropped packets)

2013-10-10 23:15:43 DROP TCP xx.xx.xx.xx xx.xx.xx.xx 5613 32631 48 S 3865585991 0 8192 - - - RECEIVE


Apparently, some higher level ports are being blocked... What is process is being blocked?
I looked further at the netstat output to see what ports were LISTENING on the node, 

Netstat -a -n -o 
  TCP    0.0.0.0:6801           0.0.0.0:0              LISTENING       9256
  TCP    0.0.0.0:6802           0.0.0.0:0              LISTENING       9256
  TCP    0.0.0.0:6803           0.0.0.0:0              LISTENING       9256
  TCP    0.0.0.0:6804           0.0.0.0:0              LISTENING       9256
  TCP    0.0.0.0:6805           0.0.0.0:0              LISTENING       9256
  TCP    xx.xx.xx.xx:30298   0.0.0.0:0              LISTENING       9256
  TCP    xx.xx.xx.xx:30332   0.0.0.0:0              LISTENING       9256
  TCP    xx.xx.xx.xx:30365   0.0.0.0:0              LISTENING       9256
  TCP    xx.xx.xx.xx:30400   0.0.0.0:0              LISTENING       9256
  TCP    xx.xx.xx.xx:30437   0.0.0.0:0              LISTENING       9256
  TCP    xx.xx.xx.xx:30472   0.0.0.0:0              LISTENING       9256
  TCP    xx.xx.xx.xx:30507   0.0.0.0:0              LISTENING       9256
  TCP    xx.xx.xx.xx:30540   0.0.0.0:0              LISTENING       9256
  TCP    xx.xx.xx.xx:30575   0.0.0.0:0              LISTENING       9256
  TCP    xx.xx.xx.xx:30611   0.0.0.0:0              LISTENING       9256

  TCP    xx.xx.xx.xx:30646   0.0.0.0:0              LISTENING       9256

There are a ton of 30k+ ports that that RA is listening on. Obviously, these are not being allowed through the firewall. The 9256 column is the PID, but also the common 6800 , 6801 ports identify this as the RA Framework Services. What is causing these higher number ports? 

Finally, after some digging in the KB,
How to Change BI+ EPM Workspace to No Longer Use Dynamic Port Allocation for Logins to Properly Configure the Firewall to Allow Connections. (Doc ID 1483777.1)

Hyperion BI+ - Version 11.1.2.0.00 to 11.1.2.2.000 [Release 11.1]

How to change BI+ EPM Workspace to no longer use dynamic port allocation for logins so you can properly configure the firewall to allow connections.

FIX

 1. Login to Workspace click  Navigate -> Administer -> R&A -> Web Applications
      Right click on Reporting and Analysis Framework Web-Application -> Select Properties -> Internal
        Change Pass Data Using Streams Instead Of Files to No -> click OK

 2. Restart RaFramework Web


Also, there is a small blurb in the EPM doc about this if you look carefully,

RA Through Firewall

Automating the Daunting Task of Hyperion Database Password Changes

$
0
0

Disclaimer: This is information is for advanced level administrators. Please use at your own risk. 

This post is about changing the underlying database passwords that form the foundation of the Hyperion EPM environment. In Hyperion nearly every product has a corresponding database schema/user, depending on how the environment is setup. In my experience clients infrequently change these database passwords, if ever. Perhaps this is just lax security or maybe it is due to the daunting efforts involved in password changes. I'd like to show a different approach which might help make the process easier.

First, let's look at the typical process for changing database passwords.
  1. Change the HSS/Registry password:
    On EACH node in your environment:
    Open config tool on each node and given that the connection to HSS now fails, it will prompt you to re-enter the database credential to HSS registry from scratch. You will then need to run the "Foundation -> Configure database" configure task.
  2. For each EPM module with a database connection
    For instance: CalcMgr, Planning, HFM..etc
    Run the config tool and run the database configuration task for each module. Note: when updating it will prompt you to also redeploy the application server to update the WebLogic passwords. You would need to enter "perform first time configuration of database", make certain the schema in the drop down list is pointing at the correct DB for this module, and then it will prompt "would you like to reuse or drop". You need to correctly select "reuse" or risk erasing all your data.
  3. Update product specific passwords. There are some passwords which do not fit the mold described in 2. These are things like .UDL files for HFM, FDM Applications, Planning Applications. Each of these components will need evaluated and handled differently. 
The tasks in 1 and 2 can be readily automated.  In my opinion the steps in 1 and 2 are very time consuming and potentially risk prone if you make a mistake. I really like to avoid using config tool and redeploying as much as possible due to its buggy behavior. Let's re-evaluate what happens in step 1 and 2 and try to automate. The third step is harder since it depends based on the application, and perhaps not worth trying to automate.
  1. Changing the HSS Registry password consists of two parts. There is a reg.properties file which simply contains the JDBC connection details and is used when opening config tool. If config tool cannot connect to the HSS database, it will prompt to re-enter the DB info for the purpose of recreating the reg.properties file.
    The second part is updating the HSS registry with the correct DB HSS/Registry password.

    Consequently, the password is stored in the file system and in the database.

    Automation:
    The encrypted value for reg.properties is not possible to create outside of using config tool. So the first node you will need to open config tool and re-enter the database credentials, and run the "Foundation -> configure database" task. This creates a new reg.properties on this node and also updates the HSS password in the database (HSS registry). For automation, do not re-run this on each node, just copy the updated reg.properties to each node:
    copy d:\Oracle\Middleware\user_projects\epmsystem1\config\foundation\11.1.2.0\reg.properties \\server2\d$\Oracle\Middleware\user_projects\epmsystem1\config\foundation\11.1.2.0\reg.propertiescopy d:\Oracle\Middleware\user_projects\epmsystem1\config\foundation\11.1.2.0\reg.properties \\server3\d$\Oracle\Middleware\user_projects\epmsystem1\config\foundation\11.1.2.0\reg.properties ...
  2. Step two is updating the passwords for each EPM module. Behind the scenes this step has two parts. a) Updates EPM module password in the EPM System Registry. b) Redeploying the Application Server updates the JDBC connections in WebLogic Essentially, Oracle\Middleware\user_projects\domains\EPMSystem\config\jdbc Automation for a) The epmsys_registry tool can be used to change the HSS Registry connections. You can find a list of all the database connections stored in the registry by running epmsys_registry without any arguments to generate a registry report. Then search for DATABASE_CONN to identify the database connections. To change from the command line you can use this syntax:
    set SYSREG=D:\Oracle\Middleware\user_projects\epmsystem1\bin\epmsys_registry

    call %SYSREG% updateencryptedproperty SYSTEM9/FOUNDATION_SERVICES_PRODUCT/EPMA_PRODUCT/DATABASE_CONN/@dbPassword NewPassword
    ... Continue for each database connection. Remember, you can skip the EPMRegistry connection since you already updated this in step 1. Automation for b) WebLogic has a scripting language, WLST, which can be used to script the password change in WebLogic. To find the list of datasources which need modfied login to the WebLogic Admin console and look under the JDBC connections. Note: the list of connections does not necessarily match those in part a, above.
    WLST Script

    connect('epm_admin','','t3://wl_domain:7001')
    edit()
    startEdit()
    pass_aif = encrypt('NewPassword')

    dsName = 'aif_datasource'
    cd('/JDBCSystemResources/'+dsName+'/JDBCResource/'+dsName+'/JDBCDriverParams/'+dsName)
    set('PasswordEncrypted', pass_aif)

    save()
    activate()
Conclusion: 
The steps shown here can be prepared and scripted before the maintenance. This dramatically eliminates the time it takes to perform the maintenance since the time consuming steps are prepared up front and not being performed on demand when the environment is already down.

Testing the FDM 32-Bit Database Connection

$
0
0
I recently had some issues with FDM and suspected an issue with the database client setup. However, both the 32 bit and 64 bit Oracle clients were installed on the machine to support both FDM (32 bit) and HFM (64 bit). 

Specifically, I wanted to test the Windows OLE DB Oracle Driver connection, rather than relying on sqlplus to ensure the OLE DB connection was working with the Oracle client. The 11.2.0.3 Oracle client installer has a known bug where it fails to correctly register OLE DB. However, if I was to just create a simple test .UDL file using the Oracle OLE DB provider it would default to using the 64 bit Oracle client. How could I test the 32 bit client using a UDL file when both the 32 and 64 bit Oracle client is installed?

This blog article was very helpful:
http://blogs.msdn.com/b/chaitanya_medikonduri/archive/2008/04/09/how-to-run-32-bit-udl-file-on-a-64-bit-operating-system.aspx

Ultimately, this command was able to successfully test the 32 bit Oracle Client using Oracle's OLE DB provider: 
C:\Windows\system32>C:\WINDOWS\SysWOW64\Rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile c:\Windows\Temp\test.udl32

This post is a tad bit "in the weeds". However, FDM provides very little indication of what is actually going on when it fails to open. This might just be useful to verify all aspects of connectivity when troubleshooting.

Fun with the Hyperion Log Analysis Utility

$
0
0

 I was recently playing around with the Log Analysis tool on 11.1.2.2.

John Goodwin has a good write up of the basic operation of the log analysis utility here:
http://john-goodwin.blogspot.com/2013/09/epm-standalone-log-analysis-utility.html

After reviewing the tool, I was curious how to make it a bit more useful.

First, John seems to be pinpointing specific product log directories with the "-d" option. I am curious if it is possible to get more generic and just have the utility tell us what is wrong without specifying the product. This would be beneficial if an error is occurring in the system and you just want a quick report of what error messages might be coming out to help troubleshoot.

I tried very generically:
loganalysis.bat -system -tmin 60  -d d:\Oracle\Middleware\user_projects

However, this seemed to only get the logs in user_projects\epmsystem1\diagnostics. It was missing the Weblogic logs under user_projects\domains. These logs are important because they provide insight into what is happening at the web application server layer. To get more of a complete picture of the system, it is possible to generate a report for both the domains folder and the diagnostics folder. 
loganalysis.bat -system -tmin 60  -d d:\Oracle\Middleware\user_projects\domains -o domains_report
loganalysis.bat -system -tmin 60  -d d:\Oracle\Middleware\\user_projects\epmsystem1\diagnostics -o diagnostics_report


Now this is on the right track. The next issue is that the utility is only scanning a single node. In a distributed environment, this doesn't help the problem of having to log into multiple nodes to gather the logs. Digging a little deeper, it looks like UNC paths work well in the Log Analysis utility.
For instance,
loganalysis.bat -system -tmin 60 -d \\node1\d$\Oracle\Middleware\user_projects\epmsystem1\diagnostics -o node1_diagnostics

Using this information, it is possible to orchestrate reports for all nodes in the environment at the same time from a single node. When each report finishes it opens a html report as a tab in Internet Explorer for review. When completed the results are easily viewed by scanning through the multiple tabs in IE.

The final script to run reports for all nodes at once might look something like this:

set SEARCH_IN_MINS=60

start cmd /C "loganalysis.bat -system -tmin %SEARCH_IN_MINS% -d \\node1\d$\Oracle\Middleware\user_projects\domains -o web1_domains"
start cmd /C "loganalysis.bat -system -tmin %SEARCH_IN_MINS% -d \\node1\d$\Oracle\Middleware\user_projects\epmsystem1\diagnostics -o web1_diagnostics"

start cmd /C "loganalysis.bat -system -tmin %SEARCH_IN_MINS%  -d \\node2\d$\Oracle\Middleware\user_projects\domains -o web2_domains"
start cmd /C "loganalysis.bat -system -tmin %SEARCH_IN_MINS%  -d \\node2\d$\Oracle\Middleware\user_projects\epmsystem1\diagnostics -o web2_diagnostics"

start cmd /C "loganalysis.bat -system -tmin %SEARCH_IN_MINS%  -d \\node3\d$\Oracle\Middleware\user_projects\epmsystem1\diagnostics -o planning1_diagnostics"
start cmd /C "loganalysis.bat -system -tmin %SEARCH_IN_MINS%  -d \\node3\d$\Oracle\Middleware\user_projects\domains -o planning1_domains"

start cmd /C "loganalysis.bat -system -tmin %SEARCH_IN_MINS%  -d \\node4\d$\Oracle\Middleware\user_projects\epmsystem1\diagnostics -o planning2_diagnostics"
start cmd /C "loganalysis.bat -system -tmin %SEARCH_IN_MINS%  -d \\node4\d$\Oracle\Middleware\user_projects\domains -o planning2_domains"

....

I think this is infinity more useful. Much more useful than the single node, single product example. Next time Hyperion is down and everyone is scrambling looking for answers, this script might just be a quick way to discover the issue.

Some Bad Patches?

$
0
0

I recently came across a few bad patches.

Specifically, HSS 17537889, 11.1.2.2.303

In Shared Services, Application Groups, when trying to expand LCM for HFM applications (also with EPMA applications) SSL URLs will be appended with a :80, invalidating the URL.

EPMLCM-30034:Failed in communicating to Hyperion Financial Management remote service at URL https://servername:80/hfmlcmservice/LCMWS.asmx

Note the https protocol with the :80 appended to the end. The patch cannot form SSL URL's properly. This was confirmed by rolling back the patch and seeing the URLs form properly.


Additionally, HFM 11.1.2.2.306 & 307 cause certain Financial Reports to Fail against HFM. The error in HFM is:
File: CDQISource.cpp Version: 11.1.2.2.306.4365 Line: 6408 Error: (-3)(0xFFFFFFFD)(An unknown error occurred. (-3))

Specifically, looking at the .307 Readme, under known issues:
· 18528346 – Financial reports using ‘Base of Current POV for entity’ is not working with conditional suppression.
I think there are broader issues with FR and HFM in this patch that only occur with certain report options in FR.
I suspect these two issues also reside in the 11.1.2.2.500 patch set because it was released before Oracle fixed these issues.


Windows WebLogic Servies Fail to Start - Trouble Encrypting boot.properties

$
0
0
I have run across this error a few times and have finally gotten around to documenting it. The issue occurs typically after a multi node Hyperion installation and all the WebLogic managed servers not residing on the WebLogic domain fail to start up. Essentially, you start the WebLogic service, and after a minute it shuts down. Looking into the WebLogic managed server log files: 


java.lang.AssertionError: java.lang.reflect.InvocationTargetException
at weblogic.descriptor.DescriptorManager$SecurityServiceImpl$SecurityProxy._invokeServiceMethod(DescriptorManager.java:175)
at weblogic.descriptor.DescriptorManager$SecurityServiceImpl$SecurityProxy.decrypt(DescriptorManager.java:192)
at weblogic.descriptor.DescriptorManager$SecurityServiceImpl.decrypt(DescriptorManager.java:114)
at weblogic.descriptor.internal.AbstractDescriptorBean._decrypt(AbstractDescriptorBean.java:1092)
at weblogic.management.configuration.SecurityConfigurationMBeanImpl.getCredential(SecurityConfigurationMBeanImpl.java:737)
at weblogic.security.internal.ServerPrincipalValidatorImpl.getSecret(ServerPrincipalValidatorImpl.java:88)
at weblogic.security.internal.ServerPrincipalValidatorImpl.sign(ServerPrincipalValidatorImpl.java:67)
at weblogic.security.service.PrivilegedActions$SignPrincipalAction.run(PrivilegedActions.java:62)
at weblogic.security.service.SecurityServiceManager.createServerID(SecurityServiceManager.java:1098)
at weblogic.security.service.SecurityServiceManager.getServerID(SecurityServiceManager.java:1109)
at weblogic.security.service.SecurityServiceManager.sendASToWire(SecurityServiceManager.java:600)
at weblogic.server.channels.ChannelService.resetQOS(ChannelService.java:296)
at weblogic.server.channels.ChannelService.start(ChannelService.java:258)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

Caused By: weblogic.security.internal.encryption.EncryptionServiceException
at weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptBytes(JSafeEncryptionServiceImpl.java:139)
at weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptString(JSafeEncryptionServiceImpl.java:187)
at weblogic.security.internal.encryption.ClearOrEncryptedService.decrypt(ClearOrEncryptedService.java:96)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at weblogic.descriptor.DescriptorManager$SecurityServiceImpl$SecurityProxy._invokeServiceMethod(DescriptorManager.java:173)
at weblogic.descriptor.DescriptorManager$SecurityServiceImpl$SecurityProxy.decrypt(DescriptorManager.java:192)
at weblogic.descriptor.DescriptorManager$SecurityServiceImpl.decrypt(DescriptorManager.java:114)
at weblogic.descriptor.internal.AbstractDescriptorBean._decrypt(AbstractDescriptorBean.java:1092)
at weblogic.management.configuration.SecurityConfigurationMBeanImpl.getCredential(SecurityConfigurationMBeanImpl.java:737)
at weblogic.security.internal.ServerPrincipalValidatorImpl.getSecret(ServerPrincipalValidatorImpl.java:88)
at weblogic.security.internal.ServerPrincipalValidatorImpl.sign(ServerPrincipalValidatorImpl.java:67)
at weblogic.security.service.PrivilegedActions$SignPrincipalAction.run(PrivilegedActions.java:63)
at weblogic.security.service.SecurityServiceManager.createServerID(SecurityServiceManager.java:1098)
at weblogic.security.service.SecurityServiceManager.getServerID(SecurityServiceManager.java:1109)
at weblogic.security.service.SecurityServiceManager.sendASToWire(SecurityServiceManager.java:600)
at weblogic.server.channels.ChannelService.resetQOS(ChannelService.java:296)
at weblogic.server.channels.ChannelService.start(ChannelService.java:258)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)


WebLogic is trying to read the boot.properties file in order to get the credentials to startup the managed server. However, it appears it needs to contact the WebLogic Domain in order to properly encrypt the boot.properties. You would also see the failed connection to the WebLogic Domain in the logs:

<Aug 2, 2014 6:52:04 AM UTC> <Emergency> <Management> <BEA-141151> <The admin server could not be reached at http://wldomain:7001.>
<Aug 2, 2014 6:52:04 AM UTC> <Info> <Configuration Management> <BEA-150018> <This server is being started in managed server independence mode in the absence of the admin server.>

Having a look at the boot.properties file it looks like the password has not been encrypted, hence the EncryptionServiceException. It is trying to read what it thinks is the encrypted password but the password is plain text, causing the exception. 

C:\Oracle\Middleware\user_projects\domains\EPMSystem\servers\RaFramework0\security\boot.properties
#
#Fri Aug 01 05:06:31 UTC 2014
password=epm_admin
username=mypassword


So the question is how to get the Managed Server to properly contact the WebLogic domain to encrypt the boot.properties file. 

I usually do this by starting it from the command line, 

cd C:\Oracle\Middleware\user_projects\domains\EPMSystem\bin
startManagedWeblogic.cmd RaFramework1 http://wldomain:7001

Note, the second argument is the WebLogic Domain URL. 

While starting up, assuming the Managed Server is able to connect to the domain you will see:

<Aug 2, 2014 6:57:37 AM UTC> <Notice> <Security> <BEA-090083> <Storing boot identity in the file: C:\Oracle\Middleware\user_projects\domains\EPMSystem\servers\RaFramework1\security\boot.properties>

This is a good indication that the problem has been resolved. Looking in the boot.properties you should see the encrypted password.

This approach is what I find best for debugging. Additionally, the startup parameters for starting the WebLogic managed server as a Windows service are in the Windows Registry. Specifically for Hyperion there is a JVMOption for setting the WL Domain server. Make sure that this is set correctly when starting as a Windows service. "-Dweblogic.management.server=http://wldomain:7001"

I'm Presenting at Oracle Open World

EPMVirt - Build your own Hyperion EPM virtual environment

$
0
0


 EPM Virtual Environment Intro

Beta (Please note, this process is in early testing stages)

I have been working on a small project to provide the ability to create a Oracle EPM virtual instance. The idea for the project is to provide a semi-automated method for creating a EPM virtual installation that can be used on laptops or, any machine, as it is generic. Where this method differs from most other virtual EPM projects is that rather than providing the virtual image directly (binary image), this method will provide all the scripts needed to build out the environment on the fly.
The basic idea is this:
  1. Download all the required software
  2. Create a virtual Oracle Linux instance using Oracle Virtual Box
  3. Install my custom provided custom RPM, buildEPMvirt
    Code repository hosted on SorceForge (https://sourceforge.net/projects/epmvirt/)
  4. Copy downloaded software from step 1 to virtual instance
  5. Run buildEPMvirt script to build the environment 
The steps above will give you a canned set of scripts to flawlessly, easily create an virtual EPM environment. All of the hard work is done for you: Analyzing requirements, OS administration, database administration, EPM installation and configuration, solving issues, and testing are all done for you!

EPMVirt - What do you get? 

EPMVirt is a process for creating a Virtual Environment for Hyperion / Oracle EPM. After completing the installation process detailed here you will have:

Oracle Hyperion 11.1.2.3.0
  • Foundation Services
  • Calculation Manager
  • Hyperion Planning
  • Essbase Administrative Services (EAS)
  • Essbase
  • Essbase Integration Services
  • Essbase Provider Services (APS/Smartview)
  • Financial Reporting / Workspace
  • FDM Enterprise Edition (FDMEE)
  • Disclosure Management
  • Profitability and Cost Management
Oracle RDBMS 12.1.0.1.0


What is coming? As Oracle matures in the Linux realm, I may provide HFM and EPMA in future 11.1.2.4 releases. Also, I will provide a 11.1.2.3.500 release shortly.

Environment Details

Links:

Workspace: http://epmvirt:9000/workspace/index.jsp
EAS Console: http://epmvirt:9000/easconsole/console.html

Hyperion admin user: password
Linux users:
  oracle , password=oracle
  root,     password=EPMVirt

Database:
  SID: HYPDB
  Port: 1521
Passwords: PWD
DB Accounts: 
EPM_HSS - Shared Services/Foundation
EPM_RA - Reporting and Analysis
EPM_CALC - Calculation Manager
EPM_HPSYS - Planning System Database
EPM_HPAPP1 -  Empty schema for creating planning application
EPM_ESTUDIO - Essbase Studio
EPM_EAS - Essbase Administration Studio
EPM_PROFIT - Profitability
EPM_FDMEE - FDM Enterprise Edition
EPM_DISC - Disclosure Management

Before You Start: Requirements

Before beginning, you will need
  • 50 gigs of hard disk space. This can be provided by using local storage, or an external USB device. 
  • 10 gigs of temporary hard disk space for downloads 
  • 2 gigs of RAM 
  • 64 bit Operating System 
  • A supported OS for Oracle Virtual Box. I have only tried on Windows, but Mac and Linux should be supported

EPMVirt - Step 1: Download Required Software

$
0
0

EPM Virtual Environment Intro
Step 1: Download Required Software
Step 2: Create Virtual Oracle Linux Instance
Step 3: Copy Downloads to Virtual Machine
Step 4: buildEPMvirt script

 Step 1: Download Required Software

ETA for this step: 2 hours (waiting for downloads to complete)

Note regarding software downloads. You are responsible for potential licensing requirements for any of the software. The script buildEPMVirt simply automates the installation of the software. You are responsible for downloading and accepting the Oracle license agreements.  
  1. Download Virtual Box for your OS
    https://www.virtualbox.org/wiki/Downloads
    Specifically I am using VirtualBox 4.3.18 for Windows hosts
  2. Download Oracle Linux 6.5
    Using the Oracle Software Delivery Cloud,
    https://edelivery.oracle.com/linux

    Select Oracle Linux and 64-bit options


    Choose Oracle Linux 6 Update 5


    Download this file:
    Oracle Linux Release 6 Update 5 for x86_64 (64 Bit)V41362-013.7G

  3. Download Oracle Database 12c

    Go to the Oracle 12c Download page. Download Standard Edition 12.1.0.1.0.

    http://www.oracle.com/technetwork/database/enterprise-edition/downloads/database12c-linux-download-1959253.html

    The two files should be
    linuxamd64_12c_database_1of2.zip
    linuxamd64_12c_database_2of2.zip


  4. Go to Oracle Software Delivery Cloud
    https://edelivery.oracle.com/

    Choose "Enterprise Performance Management"
    Linux x86-64


    Choose 11.1.2.3.0 Media Pack

    Download Part 1-7,

Step 1 is completed. 

Please move on to Step 2: Creating an Oracle Linux Virtual Environment


EPMVirt - Step 2: Create an Oracle Linux Virtual Environment

$
0
0

 Step 2: Create Virtual Image

ETA for this step: 45 minutes (Configuring and Installing VM)

This step will provide the framework for the EPM virtual instance. To start we will install the Oracle VirtualBox software. (https://www.virtualbox.org)


Part a) Install Oracle Virtual Box

Double click on the Virtual Box installer which was downloaded.
Click on Next...

Click Next to accept all default options.
Again, click next for default options.

Chose Yes, acknowledging that your internet connection may be briefly disrupted.

Click Install.

Select Finish to open VirtualBox.

Virtual Box home screen:


Select "New" to create a new Virtual Machine.

Under the name field, chose any name for your new Virtual Machine
Choose Linux for Type and Version Oracle 64 Bit.
Note: You may not see 64 bit as an option if vitalization is not turned on in your BIOS. See below for instructions on how to fix.



SPECIAL NOTE: If 64 bit is not showing up as an option you need to enable Virtualization technology in your computer's BIOS. 


The following link may explain this in more detail. Without 64 bit enabled, none of the steps in this tutorial will work due to incompatible architecture. 


Choose 3 Gigs of memory for the virtual machine (3072 meg). If you have more RAM, this can be adjusted for better performance later.

Chose "Do not add a virtual hard drive." and hit "create"
Accept the warning message by selecting Continue

The creation is complete, the settings are now displayed in the home screen,

Let's adjust a few settings. First create a hard drive:
Click Settings, Select storage.

Right Click on Controller: SATA. Click Add Hard Disk

Select "Create new Disk"

Hit next to select the default disk option (VDI).

For best performance, and to avoid pesky "disk full" errors. Select Fixed Size for the disk size.

Enter 50GB for the disk size:
Select "Create" to finish adding the disk. It will take a while to format the disk.

Next, Under "Network" Change the "Attached to" field from NAT to Bridged Adapter. This will allow the Virtual Machine to connect to the internet for pulling rpm packages during install.


Under "System" , select processor. Move the scroll bar under Processor to select more than 1 CPU. 2 will work. More will result in faster performance.
Select OK to finish adjusting settings.

Part b) Install Linux on the Virtual Machine

Click "Start" to start the VM:
A new window will pop up containing the Virtual Machine. There is no boot image yet so it will not do anything useful. Select CD/DVD devices. Chose a virtual CD/DVD disk file...


Choose the ISO image for Oracle Linux that was downloaded in the previous download step.
Now that the virtual DVD installation media is inserted into the virtual machine, reboot to have it boot from the Oracle Linux installation media.



Quickly... on to the next step and hit the TAB key!

When the Oracle Linux installer splash screen opens tit the Tab key to open options.

This will bring up the command line to boot.
At the end of the line add the text:
     ks=http://interopconsulting.com/ks1  
 to specify the automated Linux install script.
(full line will read vmlinuz initrd=initrd.img ks=http://interopconsulting.com/ks1)


Press enter to boot the Linux installer and begin the automated install. 
The following automated process will occur: 
  1. Linux installer boots, establishes a network connection and downloads ks1 Linux kickstart script
  2. The ks1 script specifies the list of RPM packages to install automatically.
  3. A post installation script will run after packages are installed to download and install the custom EPMVirt RPM Package. EPMVirt is a set of scripts required to install and configure the Oracle EPM environment. The RPM is available at:
    http://sourceforge.net/projects/epmvirt



Once complete login as root and determine the machine's IP address. The initial root password is EPMVirt.

Once logged in type:
  ifconfig

Determine the IP of the machine, for instance 192.168.1.82


Now, let's add this entry to your local machine's hosts file so that you can refer to it by name, rather than using the ip address.

Open a cmd prompt as administrator:
Click on the Windows Start Menu, type "cmd" into the search bar.
Right click on the cmd.exe icon, select "Run as administrator"

In the cmd prompt window type
    echo 192.168.182 epmvirt >> drivers\etc\hosts


This will now associate the name epmvirt with your new virtual machine's ip address.
For instance, referencing the URL from your laptop
http://epmvirt:19000/workspace would now be possible.

Continue to Step 3: Copy Downloads to Virtual Machine

Viewing all 102 articles
Browse latest View live




Latest Images