Dodeca Best Practices

Applied OLAP, Inc.


Table of Contents

Administrative Functionalities
Have Separate Development, QA / Test, and Production Environments
Backup your metadata on a daily basis using the metadata backup utility
Perform routine full Dodeca repository backups
Staffing
Formal training or review is a must, especially in environments where there is a large development staff or high turnover
Find a Dodeca mentor
Implement a plan for internal escalation and escalation to Applied OLAP Support
Create and enforce team development standards
Infrastructure and Installations
Proactively work to harden Dodeca servers
Use HTTPS on all Dodeca connections
Upgrade Java versions to get the latest security patches
Install the Dodeca Framework installation on a Windows machine with necessary utilities like WinRar and Notepad++
DO NOT use UltraEdit to edit Dodeca config files as they add an extra backup file that messes up installations
Know if you are using URL deployment, XCopy deployment, or both
Maintain version parity between client and server, especially when dealing with XCopy installs
Keep a record of ClickOnce URL’s and don’t rely on browser history
Prepare for installations by gathering the appropriate information
Initialize a tenant using the Metadata Starter Kit
Use the Quick Start Utilities to quickly import Essbase Connections and Dimensions
Use the same ID and name for Dodeca objects
Applications
Use a unique ApplicationCaption property to identify different runtime environments including differentiation between Production, UAT, and Development environments
Create a custom style library to implement a highly tailored look and feel
Implement an authentication service on every application
Mark administrative applications using the AdminApplication property and set the AdminPrivilegeRequiredForStartup property to True
Don’t use the deprecated Password property to protect an application
Set the SessionTimeoutPolicy to suit your company needs
ApplicationTokens may be managed relationally using the ApplicationTokensSQLPassthroughDataSetID property
For admin applications, set the AllowExportExcelTemplate and AllowImportExcelTemplate properties to true to make it easy to edit the templates in Excel
Essbase Connections
Use stateful connections when necessary to boost performance
Use Essbase JNDI connections for enhanced security and ease of central management
Define common connection properties, especially the AdminUsername and AdminPassword, centrally using essbase/DEFAULT JNDI connection
Use Outline XML Extract to enable the display of Essbase outlines inside of Dodeca
Don’t use the current version of Relational Outline Caching unless you specifically need it (and then only if the outline is BSO)
Review Essbase Connections metadata to be sure you are pointing to the appropriate server environments. For example, Prod Applications should be pointing to prod servers, Dev Applications should be pointing to dev servers, etc
Selectors / Selector Lists
Essbase Selectors are unaware of their connections, so don’t create selectors for dimensions of different databases unless the dimension name is different
Essbase treeview selector lists know how to navigate down (or up) the Essbase hierarchy.
For best performance, build the tree incrementally from the top down
Prefill small dimension trees to prevent additional calls to the server
Use session caching whenever possible for best performance
Set the MaxLevelSelectable property to 0 to force users to select a leaf level node
Set the SelectionTextMinCharacters and SelectionTextMaxCharacters to the same value to make the text box a fixed width selection display
Set the NullSelectionText property to a value for prompting the end user
Use the TokenForMemberNameAndAlias property to use the member name or alias token for a given replacement value
Essbase Scripts
Use the Essbase Scripts editor to create and test MDX queries, report scripts, calc scripts, and member queries.
Use the EssbaseScriptID to execute MDX, report scripts, calc scripts, and member queries in Workbook Script instead of writing the script text into the Workbook Script
SQL Connections
Use JNDI for server-based management of connections and for better security
SQLPassthroughDataSets
Use multiple queries in a single SQLPassthroughDataSet where it makes sense
When there are multiple queries, use the ConcurrentQueryExecutionEnabled property to run all queries simultaneously
Use the Identify Table Columns button to fill column definitions
Use the IncrementalMaxRows to return large data sets in chunks to reduce server memory usage
Use the FetchSize to tune large data retrievals

Administrative Functionalities

Have Separate Development, QA / Test, and Production Environments

Customers should leverage separate Development, QA and/or Test, and Production environments. We have customers who did not have a separate development environment, but rather they performed all changes in their production environment. In those cases, we contend they only have a development environment because everything and anything could be updated as though it were in development.

In many companies. SOX compliance requires not only separate environments, but also separation of duties between the different environments. Though some companies may not require separation of duties, a systematic approach to development, and the promotion of objects through a QA/Test process and, after passing QA/Test, on to Production, is considered a best practice for any system.

Backup your metadata on a daily basis using the metadata backup utility

Backup your metadata daily using the Metadata Backup Utility. The Metadata Backup Utility can backup most objects that can be configured in the Dodeca administrative interface. Those objects include Views, Spreadsheet Templates, Workbook Scripts, Selectors, Selector Lists, Essbase Connections, SQL Connections, and SQLPassthroughDataSets, among others.

The Metadata Backup Utility is written in Java and thus runs on most operating systems, including servers.

Note: Beginning with Dodeca version 8.0, the Metadata Backup Utility functionality is built into the Dodeca Shell command line utility. Dodeca Shell is also written in Java but is designed to be both more secure and to provide automation capabilities.

Perform routine full Dodeca repository backups

Not all repository data is part of the metadata backups, thus we recommend you perform routine repository backups at the database level in order to backup comments, the data audit log, metadata audit log, view usage log, users, roles, and user/role mappings.

Beginning in Dodeca version 8.0, Dodeca Shell with provide backup capabilities for more of the data in the repository including comments and the data audit log, however, we still recommend regular database level backups of the full Dodeca repository.