Wednesday, July 12, 2017

Finding EPM-Relevant Windows End-User Registry Keys

This is a follow-up to my previous post, Desktop Registry File

9 times out of 10, whenever we implement a new on-premises Oracle EPM / Hyperion system, we receive complaints about intermittent browser or SmartView lock-ups.  This can happen when we're hitting Oracle's EPM Cloud instances, too.

Any EPM consultant worth their salt knows the root cause: missing or incorrect Windows Registry keys on the end-user's workstation.

I always find it tedious having to crawl through the regedit tool to find the various keys to see how they're set.  How about a simple script that does the checking for you?

@echo off
REM EPMClientRegCheck.bat
REM
REM This simply script displays the values of the Windows Registry key entries
REM relevant to browser and SmartView timeouts, and SmartView flickering.
REM
REM  Written 07/12/2017 by Dave Shay (Datavail)
REM Modified MM/DD/YYYY by Your Name - Briefly list changes

echo ------------------------
echo KeepAliveTimeout should be set to dword:2bf20
echo Here is the current value:
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v KeepAliveTimeout

echo ------------------------
echo ServerInfoTimeout should be set to dword:2bf20
echo Here is the current value:
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ServerInfoTimeout

echo ------------------------
echo ReceiveTimeout should be set to dword:75300
echo Here is the current value:
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ReceiveTimeout

echo ------------------------
echo DisableWindowTransitionsOnAddinTaskPanes should be set to dword:1
echo Here is the current value:
reg query HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Toolbars /v DisableWindowTransitionsOnAddinTaskPanes

echo ------------------------
echo DisableAnimations should be set to dword:1
echo Here is the current value:
reg query HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Graphics /v DisableAnimations

echo All done checking!
pause

Double-click the .bat file and you'll see something like this:


------------------------
KeepAliveTimeout should be set to dword:2bf20
Here is the current value:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
    KeepAliveTimeout    REG_DWORD    0x2bf20

------------------------
ServerInfoTimeout should be set to dword:2bf20
Here is the current value:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
    ServerInfoTimeout    REG_DWORD    0x2bf20

------------------------
ReceiveTimeout should be set to dword:75300
Here is the current value:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
    ReceiveTimeout    REG_DWORD    0x75300

------------------------
DisableWindowTransitionsOnAddinTaskPanes should be set to dword:1
Here is the current value:


ERROR: The system was unable to find the specified registry key or value.
------------------------
DisableAnimations should be set to dword:1
Here is the current value:
ERROR: The system was unable to find the specified registry key or value.
All done checking!
Press any key to continue . . .

Here we see two ERROR messages advising us of missing keys. (These keys in particular are the ones that prevent SmartView graphic flickering issues in Office 2013)

Easy and simple.  I like that!

Tuesday, July 11, 2017

Desktop Registry File

Whenever I begin a new customer engagement, I always provide Oracle's recommended Windows registry settings that prevent IE & SmartView timeouts.  Some customers have complained about SmartView graphic flickering issues, which require additional registry changes.

Here, therefore, is the combined registry file I use that address all of these issues.

If applying on a one-off basis, simply copy & paste all of the text you see below this paragraph into Notepad or your favorite editor.  Name the file whatever you want, but change the filename's extension from .txt to .reg.  Double-click the .reg file and then click OK/Yes when prompted to merge the changes into your registry.  If you have many Hyperion users who need these changes, instead forward the paragraph below to your IT department and ask they be pushed out via "Group Policy Update" - your IT department will know what that means.


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"KeepAliveTimeout"=dword:0002bf20
"ServerInfoTimeout"=dword:0002bf20
"ReceiveTimeout"=dword:00075300

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Toolbars]
"DisableWindowTransitionsOnAddinTaskPanes"=dword:1

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Graphics]
"DisableAnimations"=dword:1

Saturday, July 8, 2017

Easy Way to Change EPM Workspace Window Title

I'm often asked for ways to help discriminate between Production and lower environments, by changing how EPM Workspace looks.  There are some blog posts out in the wild that suggest you replace certain files within user_projects/domains/EPMSystem/servers/FoundationServices0/tmp, but I'm not a big fan of that approach.

To change the EPM Workspace title that appears to the right of the Oracle logo, or whatever custom logo you've replaced it with, run this SQL statement against your EPM System Registry database:

UPDATE hss_component_property_values
SET property_value = 'EPM Workspace 11.1.2.4 - Datavail Demo Lab'
WHERE property_name = 'ApplicationName'

You can set property_value to be whatever you want.  The property_name value is case-sensitive and must be 'ApplicationName' exactly.

EPM Foundation caches this property when it is first initialized, so you will need to stop and restart your EPM Foundation service in order for this change to take effect.

No editing .war files inside of .ear files, and no replacing contents of /tmp folders.  Problem solved!

Wednesday, July 5, 2017

Financial Reporting 11.1.2.4.700+ Logging Bug

If you're on EPM 11.1.2.4 and have applied any of the recent patches for Hyperion Financial Reporting 11.1.2.4.700 or higher, this post is for you!

Hop onto your Financial Reporting host server and inspect this folder:

\Oracle\Middleware\user_projects\domains\EPMSystem\servers\FinancialReporting0\logs\

Look for a file here named FRLogging.log.  How large has it grown?

In all versions older than HFR 11.1.2.4.700, FRLogging.log would rotate automatically.  Starting in 11.1.2.4.700, however, this behavior broke and the log grows indefinitely.

This log in particular contains the details about the reports your users are running.  By default, each report generates 3-5 pages of log entries.  If your users heavily rely upon Hyperion Financial Reporting during month-end and/or quarter-end close, this log file can grow very quickly!


Root Cause and Workaround!
 
Edit this file:

\Oracle\Middleware\user_projects\domains\EPMSystem\config\fmwconfig\servers\FinancialReporting0\logging.xml

Find this section within the file:







The above block of XML is entirely missing the rotation-related settings. Here's a corrected version you can use to replace the above:












The above is what I prefer to use. This will cause your logging.xml file to rotate daily, with a maximum retention of 7 days' worth of files.

One thing to bear in mind: This logging.xml file resides both on your Hyperion Financial Reporting host machine and also the WebLogic Admin Server's machine. Whenever WebLogic Admin Server is running, and Financial Reporting is restarted, the logging.xml file on the WAS server is pushed to the HFR server. Also, if you have HFR clustered across multiple instances/machines, you'll need to edit logging.xml within FinancialReporting1, FinancialReporting2, etc., as appropriate.

Update: I've submitted an Oracle SR to issue a BUG about this issue, as I've encountered this in every single 11.1.2.4 implementation I've done across multiple Oracle customers.

Tuesday, July 4, 2017

Custom JDBC URL for Hyperion Planning in Full SSL

One thing that's lacking in Oracle's documentation and knowledge base is how to correctly configure a Hyperion Planning data source when your database server only permits SSL connections.  This has led to frustrating searches through online blogs, Microsoft documentation (in the case when our database is MS SQL Server), and so on.

Here is the underlying problem:

Once your DBA has configured the back-end relational database to only accept SSL client connections, it is impossible to create (or use) a data source within Hyperion Planning's data source administration screen.  This is because, unlike the EPM System Configurator, there is no checkbox for enabling SSL, and no input boxes to specify your Java keystore and password.  This means we have to click the checkbox for a custom JDBC URL, and we must figure out the syntax ourselves.

After reaching multiple dead-ends, I stumbled upon the solution.  Because I had already gone through the steps of configuring SSL for the various databases, and I deployed the applications to WebLogic, the JDBC URL syntax we need to emulate has already been provided!

Solution

On any of your EPM servers where you've deployed to WebLogic, navigate to this folder:

Open any one of these *.jdbc.xml files and examine it.  Assuming the JDBC data source you're examining has been correctly configured for SSL via the EPM System Configurator, you'll have the exact syntax that's needed for this specific environment.


Let's walk through a specific example.  Suppose we have already created our Java keystore with a default password of "changeme", as per Oracle's documentation within epm_security.pdf, and we've saved it as:
E:\Oracle\Middleware\ssl\myIdentity.jks

Furthermore, let's say we're using Microsoft SQL Server as our database (2008 or 2012, but you want to be using 2012 by now), and we have empty database named "Vision" for our new Planning data source.

In this scenario, here's the custom JDBC URL we'd copy & paste into the data source creation screen.  Bear in mind, the text you see below is all one line.  I've added linebreaks for ease of reading:

jdbc:weblogic:sqlserver://SQLSERVERHOSTNAME:1433;
  databaseName=Vision;
  ENCRYPTIONMETHOD=SSL;
  TRUSTSTORE=E:\Oracle\Middleware\ssl\myIdentity.jks;
  TRUSTSTOREPASSWORD=changeme;
  VALIDATESERVERCERTIFICATE="true";
  loadLibraryPath=E:\Oracle\Middleware\wlserver_10.3\server\lib

Personally, I find configuring EPM for full end-to-end SSL extremely time consuming and tedious. My preference is to put an SSL offloader in front of Oracle HTTP Server, but some IT organizations are becoming increasingly concerned about hardening their data's security as it passes through their internal network.