IBM DB2 OLAP Server 8.1

New features in FixPak 1 (Essbase 6.5.1)



Loading, Calculation, and Retrieval Other Systems and Essbase System Administration For information about new MaxL and API features in 6.5.1, please see these documents:
Loading, Calculation, and Retrieval Features

New Range Function

Top

@XRANGE is a new calculator function that takes as input two members (single or cross-dimensional) and returns a member range. @XRANGE is a member set function. Member set functions return a list of members.

This function is useful, for example, when you work with the Time and Scenario dimensions. You can use @XRANGE to return a member set combination of Time and Scenario instead of creating a dimension that combines the two (which creates many more individual members than necessary).

Syntax

@XRANGE (mbrName, mbrName)

@XRANGE identifies a range of members using the level of the arguments, determines the cross product of all members in the range and then prunes the set to include only the range requested.

Example

@XRANGE(1998->Jun, 2001->March)

This example returns this range:

1998->Jun, 1998->Jul, ... 1998->Dec,
1999->Jan, 1999->Feb, ... 1999->Dec,
2000->Jan, 2000->Feb, ..., 2000->Dec,
2001->Jan, 2001->Feb, 2001->Mar

Rules

Moving Sum Function

Top

Essbase now provides a moving sum function, @MOVSUM. This function applies a moving n-term sum to an input data set. Each term of the set is replaced by a trailing sum of n terms, and the first terms (the n-1 terms) are copies of the input data. @MOVSUM modifies a data set for smoothing purposes.

Syntax

@MOVSUM (mbrName [, n [, rangeList]])
 
mbrName Any valid single member name or member combination, or a function that returns a single member or member combination. 
n Optional. A positive integer value that represents the number of values to sum. The default is 3.
rangeList Optional. A valid member name, or a comma-delimited list of member names from the same dimension, or member set function or range function that returns a list of members from the same dimension. If rangeList is not specified, Essbase uses the level 0 members from the dimension tagged as Time. 

Notes

Example

The following example is based on the Sample Basic database. Assume that the Measures dimension contains an additional member, Mov Sum.
"Mov Sum" = @MOVSUM(Sales,3,Jan:Jun);
In this example, @MOVSUM smooths sales data for the first six months of the year (Jan through Jun). The results of @MOVSUM can be used with the @TREND function to forecast average sales data for a holiday season (for example, October through December).

This example produces the following report:


          Colas   New York   Actual              
              Sales     Mov Sum 
              =====     =======   
Jan            678        678   
Feb            645        645   
Mar            675       1998   
Apr            712       2032   
May            756       2143   
Jun            890       2358

Moving Sum Function with Member Value Options

Top

Essbase provides an additional moving sum function, @MOVSUMX, that is similar to @MOVSUM, in that it applies a moving n-term sum to an input data set. Unlike @MOVSUM, @MOVSUMX provides several options that control the value assigned to trailing members, and how to assign values to members that precede the n-term parameter. @MOVSUMX modifies a data set for smoothing purposes.

Syntax

@MOVSUMX(COPYFORWARD | TRAILMISSING | TRAILSUM, mbrName [,n[,rangelist]] )
 
COPYFORWARD Copies the member value into the new member until the n value is reached, then it will begin summing the value.
TRAILMISSING Sets the member value to #MISSING until the n value is reached, then it will begin summing the value.
TRAILSUM Sums the trailing values, regardless of whether the n value is reached or not. When the n value is reached, OLAP Server begins summing just those values
mbrName Any valid single member name or member combination, or a function that returns a single member or member combination.
n Optional. A positive integer value that represents the number of values that are used to calculate the moving maximum. The default is 3.
rangeList Optional. A valid member name, a comma-delimited list of member names, member set functions, and range functions from the same dimension. If rangeList is not specified, Essbase uses the level 0 members from the dimension tagged as Time. @XRANGE is also supported as a valid macro within rangeList.

Examples

Example 1

SalesSum = @MOVSUMX (COPYFORWARD,Sales,3,Jan:Aug);
 
Member Jan Feb Mar Apr May Jun Jul Aug
Sales 100 150 200 250 300 350 400 450
SalesSum 100 150 450 600 750 900 1050 1200

 
 
 

Example 2

SalesSum = @MOVSUMX (TRAILMISSING,Sales,3,Jan:Aug);
 
Member Jan Feb Mar Apr May Jun Jul Aug
Sales 100 150 200 250 300 350 400 450 
SalesSum #MISSING #MISSING 450 600 750 900 1050 1200

 
 
 

Example 3

SalesSum = @MOVSUMX (TRAILSUM,Sales,3,Jan:Aug);
 
Member Jan Feb Mar Apr May Jun Jul Aug
Sales 100 150 200 250 300 350 400 450 
SalesSum 100 250 450 600 750 900 1050 1200

 
 


Drill-Through Filter Persistence

Top

Beginning with Essbase 6.5.1, when you customize a drill-through report in Essbase Spreadsheet Add-in, you can save the drill-through filters that you create in the Select Data Filters dialog box. In prior releases of Essbase, users cannot save filters that they create when customizing a drill-through report. Users of 6.5.0 and previous releases have to recreate a filter each time they create a drill-through report.

In addition, you can add new filters, rename filters, delete filters, and select existing filters that you have previously saved.

To add new filters:

  1. In the Select Data Filters dialog box, click Add new filter. The Filter Name dialog box is displayed.
  2. In the Filter Name dialog box, enter the name for the filter that you are creating.
  3. If you want the filter to have the same description and conditions as the filter currently selected in the Select Data Filters dialog box, select Copy definition of current filter.
  4. Click OK.
  5. The filter is added to the list of saved filters in the Filter drop-down list box.
  6. Optionally, if you want to describe the filter, create a short description for the filter in the Description box.
  7. Click Save Filters.
To delete filters:
  1. In the Select Data Filters dialog box, select the filter that you want to delete from the Filter drop-down list box.
  2. Click Delete.
  3. Click Save Filters.
To rename filters:
  1. In the Select Data Filters dialog box, select the filter that you want to rename from the Filter drop-down list box.
  2. Click Rename.
  3. In the Filter Name dialog box, enter a new name for the filter.
  4. Click OK.
  5. Click Save Filters.
To save filters:

In the Select Data Filters dialog box, click Save Filters. All filters created for the drill-through report are saved.

Whenever you use the Select Data Filters dialog box, you can select from the list of filters that you have saved.

Note: You must click Save Filters to save any changes, such as adding, deleting, or renaming, to the filters.

See these sources for more information about using drill-through:

Report Command LINK

Top

The LINK Report Writer command has been extended to span into dimension levels that are located in the Hybrid Analysis portion of an Essbase cube. For more information about LINK, see the Technical Reference topic Report Writer Commands: LINK. For more information about Hybrid Analysis, see the Database Administrator's Guide Appendix D "Accessing Relational Data with Hybrid Analysis."

Parallel Calculation Correction

Top

Valid values for CALCPARALLEL (or SET CALCPARALLEL) are 1 through 4. Essbase 6.5.0 documentation incorrectly states 0 through 4.


Other Systems and Essbase

Hybrid Analysis Support for Additional Platforms

Top

Hybrid Analysis functionality has been extended to include support of two additional RDBMS platforms, SQL Server and Teradata.

See the Essbase Installation Guide for information about release levels, operating systems and drivers supported.

Support for Microsoft 4 GB RAM Tuning (4GT)

Top

Essbase Release 6.5.1 supports Microsoft 4 GB RAM Tuning (4GT). This feature enables users with extremely large databases to take advantage of a larger address space to improve performance.

Currently, the total addressable limit of RAM on servers running Windows 2000 or Windows NT is 4 GB. By default, applications can access 2 GB, with the Windows kernel using the other 2 GB. For selected versions of Windows running on Intel architecture servers, Microsoft provides the 4GT feature. The 4GT feature increases the addressable limit for applications to 3 GB, reducing the potential RAM allocated to the Windows kernel from 2 GB to 1 GB.

Essbase currently supports the 4GT feature on computers that use Intel-based processors with more than 2 GB of physical RAM, and that have either of these versions of Windows:

Enabling the Windows 4GT feature may benefit users if the Essbase installation has both these characteristics:

Enabling 4GT

To configure the computer where Essbase is installed to enable the 4GT feature, modify the boot.ini file by adding /3GB to the "multi" line for each boot partition that is defined for a Windows version that supports 4GT.

Consider this example:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WIN2KADV
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WIN2KADV="Microsoft Windows 2000 Advanced Server" /3GB /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows NT Server Version 4.0" /3GB /fastdetect

Notes

For additional information about the Microsoft Windows 4GT feature, see www.microsoft.com.

External Authentication Support for MS Active Directory

Top

Essbase now provides external authentication drivers for Microsoft Active directory server, in addition to the support for LDAP authentication introduced in 6.5.0.

To enable external authentication:

  1. Add the AUTHENTICATIONMODULE configuration setting to your server configuration file essbase.cfg. Be sure to use the correct values for the entry as listed in Syntax.
  2. Restart OLAP Server to initialize the change.
  3. Create users with Application Manager or MaxL, and specify the correct external authentication module. For instructions, see the Database Administrator's Guide security chapters or the MaxL Reference entry for create user.

Syntax

AUTHENTICATIONMODULE module_name library_name max_wait_time default_connection_parameters@hostname:port_number
 
 module_name The name of the authentication module. Use the value that corresponds to the external authentication server that you plan to use:
    "LDAP" for LDAP V3-compliant servers

    "MSAD" for MSAD

Please contact Essbase Product Management for more information about implementing custom authentication protocols.
 library_name The directory path and name of the library that implements the authentication protocol. For all platforms, the library that implements the authentication protocol is located in ARBORPATH\bin. The library name depends on the operating system where you have installed Essbase:
  • WINDOWS 
    • LDAP: essldap.dll 
    • MSAD: essmsad.dll

  • SOLARIS 
    • LDAP: libessldap.so 
    • MSAD libessmsad.so.1

  • AIX 
    • LDAP: libessldapS.a
    • MSAD: libessmsadS.a

  • HP 
    • LDAP: libessldap.sl
    • MSAD libessmsad.sl

 max_wait_time The connection timeout period, in seconds.
 default_connection_parameters Valid values can be anything representing private data needed to authenticate the user with the authentication protocol. For example, in an LDAP schema, default connection parameters would be the portion of the DN (Distinguished Name) other than the user name. The size of default_connection_parameters cannot exceed 256 bytes. The default value is FALSE.
LDAP, MSAD: 

 @host_name:port_number

LDAP and MSAD: The host name and port number of the server that the authentication protocol contacts to authenticate the user.

Note: You must type the character "@" before the host name, type the character ":" between host name and port number or shared secret, and include all commas as indicated.

LDAP Example

AUTHENTICATIONMODULE LDAP essldap.dll 30 cn=Engineers, ou=Groups, dc=yahoo, dc=com@Gorky:389
The entries in this example allow users in the group Engineers from domain yahoo.com to be authenticated on host Gorky through port number 389, with a timeout period of 30 seconds.

MSAD Example

AUTHENTICATIONMODULE MSAD essmsad.dll  45  ou=Engineers,ou=Groups,dc=yahoo,dc=com@129.63.140.122:389
The entries in this example allow users in the group Engineers from domain yahoo.com to be authenticated on host 129.63.140.122 through port number 389, with a timeout period of 45 seconds. When you create a profile in MSAD, the "CN" entry must exactly match the user login name or authentication will fail.

Notes

Caution: The authentication module receives the user name and the password sent to OLAP Server. There is, therefore, the possibility that someone could install their own authentication module and trap all user names and passwords. The only way to install or deploy an authentication module is through the essbase.cfg configuration file; therefore, be sure to use adequate operating system security to prevent unauthorized installation of authentication modules. Do not add AUTHENTICATIONMODULE to the client essbase.cfg file, as the client file is not involved in external authentication, only the server essbase.cfg file is used.

Excel 97 Support

Top

Microsoft Excel 97 support has been reinstated for Essbase Spreadsheet Add-in.


System Administration

Port Statistics

Top

You can enable OLAP Server to log, at a specified interval, the number of ports being used. By analyzing the information in the log, you can monitor port utilization and identify a need for more ports before end users are unable to connect.

To enable OLAP Server to check port use statistics and write those statistics to the OLAP Server log:

  1. Edit the server configuration file essbase.cfg to include the setting PORTUSAGELOGINTERVAL:

  2.  

     
     
     

    PORTUSAGELOGINTERVAL x

    The value of x represents the number of minutes between each check of the number of ports in use. The value of x can be any whole number from 1 - 60, with 5 the recommended minimum and default value. Essbase ignores any portion of a non-whole number. For example, Essbase evaluates 2.5 as 2 minutes. Statistics are written to the log immediately after each check.

  3. Restart OLAP Server.

  4.  

     
     
     

    View the OLAP Server Log file. You will see entries similar to this:

    [Mon Apr 22 00:48:50 2002]Local/ESSBASE0///Info(1056214)
    [3] ports in use, [10] ports allowed

Examples

PORTUSAGELOGINTERVAL 10

Essbase writes the port use statistics to the OLAP Server log every 10 minutes.
PORTUSAGELOGINTERVAL

Essbase writes the port use statistics to the OLAP Server log every five minutes (the default value).
PORTUSAGELOGINTERVAL 6.75

Essbase ignores the non-whole portion of the number, and writes the port use statistics to the OLAP Server log every six minutes.

Enhanced Security File Backup

Top

Essbase now compares the security backup file essbase.bak to the security file essbase.sec at specified intervals instead of only when OLAP Server starts.

Using Application Manager, you can change the frequency of these comparisons. You can also use a new ESSCMD, MaxL or API command to compare the security backup file essbase.bak to the security file essbase.sec at any time. Essbase always updates the backup file if it does not match the security file when the two files are compared, regardless of which tool is used to trigger the comparison.

To change how often Essbase checks for differences between the security file and the security backup file, and updates the security backup file if needed:

  1. Navigate to the Server Settings dialog box in Application Manager.
  2. Enter a value for the time interval in the Check every text box.
  3. Click OK to initialize the new value.
In Essbase Administration Services, enter the time interval in the Check for inactivity every option of the Security tab when you edit an OLAP server's properties. For more information, refer to the Essbase Administration Services Online Help.

Review these facts before changing the interval value:

To compare the security backup file to the security file at any time, and trigger an update if one is needed, use either of these methods: Even if you use ESSCMD, MaxL or API to request an update, the backup file is updated only if a difference exists between the security file essbase.sec and the security backup file essbase.bak.

ESSCMD Syntax

UpdateBakFile

MaxL Syntax

alter system sync security_backup

API Syntax

See the API What's New document.

Caution: If Essbase stops running unexpectedly for any reason, such as a freeze or crash, or as the result of terminating a process, do not restart OLAP Server until you copy the backup file essbase.bak to the security file essbase.sec. If you do not perform the copy first, when OLAP Server starts, Essbase notes that essbase.sec is corrupt, creates an empty security file and copies it to essbase.bak, thus destroying the backup of your security information.

New Compression Algorithm

Top

In addition to the options provided in previous releases (RLE, bitmap compression, or no compression), OLAP Server now supports ZLIB compression. This method is used in packages like PNG, Zip, and gzip.

Calculation and data loading is faster with direct I/O and ZLIB compression than with buffered I/O and ZLIB compression. If data storage is your greatest limiting factor, use ZLIB, but be aware that, under some circumstances, data loads may be up to 10% slower than bitmap compression. On the other hand, the size of the database will be significantly smaller when you use ZLIB as your compression technique.

Bitmap compression uses an algorithm that tracks which values are missing, and does not interact with any other type of data. ZLIB compression, in contrast, builds a data dictionary based on the actual data being compressed. Therefore, ZLIB compression should provide greater compression ratios over bitmap compression given extremely dense data. However, because the effectiveness of the ZLIB algorithm is dependent (at the bit level) on the actual data being compressed, general guidelines about when ZLIB compression will provide greater compression than bitmap compression based solely on density are not available. Unlike other compression methods, the storage space saved has little or no relationship to the number of missing cells or the number of contiguous cells of equal value. It is best to test with a representative sample of data.

To estimate the storage savings you may obtain with ZLIB, create a small database with a small sampling of real data, change the compression setting, restart Essbase, and note the difference in storage.

You can also use the small sample database to estimate any changes in calculation or data loading speed.

To change the compression setting, use Application Manager, MaxL, or Essbase Administration Services as currently documented. Simply substitute "ZLIB," for the values listed. For more information on how to use ZLIB compression in Essbase Administration Services, refer to the Essbase Administration Services Online Help.

Query Logging

Top

Query logging provides a way for Essbase administrators to track query patterns of an Essbase database. The query log file tracks all queries performed against the database regardless of whether the query originated from Spreadsheet Add-in or Report Writer. Query logging can track members, generation or level numbers of members belonging to specific generations or levels, and Hybrid Analysis members. Query logging also offers the flexibility to exclude logging of certain dimensions and members belonging to generations or levels. Because the query log file output is an XML document, you can import the log file to any XML-enabled tool to view the log. For details about the query log file structure, refer to querylog.dtd in the ARBORPATH/bin directory.

To enable query logging, create a query configuration file (distinct from the essbase.cfg file) and add to the file the configuration settings that control how query logging is performed.

Create a query log configuration file for each database that requires query logging. If the configuration file is missing or the QUERYLOG setting is off, query logging is disabled.

To enable query logging:

  1. In the ARBORPATH\App\appname\dbname directory of Essbase, create a query log configuration file. The configuration file must be named dbname.cfg, where dbname matches the name of the database. For example, the query log configuration file for Sample Basic is basic.cfg.
  2. In the configuration file, specify required and optional elements, using the syntax from the section Query Configuration File Syntax:
  3. Restart the database to accept the configuration settings. Restart after creating a file or changing any entries in a file.
  4. After query logging is enabled, review the log entries in the query log file, dbname.qlg. For example, you can view the output of the log file to analyze how many times a certain member has been queried.

Query Configuration File Syntax

The dbname.cfg file consists of the following syntax:
QUERYLOG [dimension_name]
QUERYLOG NONE GENERATION generation-range
QUERYLOG NONE LEVEL level-range
QUERYLOG GENERATION generation-range
QUERYLOG LEVEL level-range
QUERYLOG LOGHAMBRS ON | OFF
QUERYLOG LOGPATH path-expression
QUERYLOG LOGFORMAT CLUSTER | TUPLE
QUERYLOG LOGFILESIZE n
QUERYLOG TOTALLOGFILESIZE n
QUERYLOG ON | OFF
QUERYLOG Parameter Description
[dimension_name] Identifies the dimension name to be tracked. The brackets around the dimension name are required. QUERYLOG [dimension_name] logs all members of a dimension. For example, QUERYLOG [Product] tracks all members of the Product dimension. Each dimension must be specified in a separate QUERYLOG [dimension_name] setting. 

Note: QUERYLOG [dimension_name] must precede all settings that track Hybrid Analysis members and members of generation and level ranges; otherwise, Hybrid Analysis and generation and level settings are ignored.

NONE GENERATION generation-range Prevents tracking of members from the specified generation range. For example, QUERYLOG NONE GENERATION 2 excludes tracking of all members from generation 2 of the named dimension.
NONE LEVEL level-range Prevents tracking of members from the specified level range. For example, QUERYLOG NONE LEVEL 0-2 excludes tracking of all members of levels 0, 1, and 2 of the named dimension.
GENERATION generation-range Tracks members of the specified generation range by generation number, rather than by member name. For example, QUERYLOG GENERATION 5-7 logs members of generations 5, 6, and 7 of the named dimension by their generation number in the log file.
LEVEL level-range Tracks members of the specified level range by level number, rather than by member name. For example, QUERYLOG LEVEL -3 logs members of levels 0, 1, 2, and 3 of the named dimension by their level number in the log file.
LOGHAMBRS ON | OFF Tracks Hybrid Analysis members of the specified dimension. By default, the setting is OFF. The QUERYLOG NONE, GENERATION, and LEVEL parameters do not apply to Hybrid Analysis members because Hybrid Analysis members are not actually members in an Essbase outline. If QUERYLOG LOGHAMBRS ON is set, the log output is always displayed in CLUSTER format, regardless of whether QUERYLOG LOGFORMAT TUPLE is set. If QUERYLOG LOGHAMBRS ON is set, but the database or dimension does not have any Hybrid Analysis members, the setting is ignored.
LOGPATH path-expression Specifies the location of the output log file. The log file name is dbname00001.qlg; for example, basic00001.qlg. Examples of the log path are QUERYLOG LOGPATH /usr/local/Essbaselogs/ and QUERYLOG LOGPATH d:\Essbaselogs\querylogs\. You must include a backslash \ (for Windows directories) or forward slash / (for UNIX directories) at the end of the path expression; otherwise, the query log file is not created. 

By default, the location for the log output file is the ARBORPATH\App\appname\dbname\ directory. If the LOGPATH path-expression setting is missing, the default is used. Essbase writes log information to the query log file after an application stops running. 

LOGFORMAT CLUSTER | TUPLE Specifies the format of the log output. CLUSTER and TUPLE provide the same log information, but display the information differently. CLUSTER provides information on how many members of a dimension were queried and lists queried members within their respective dimensions. TUPLE lists each queried member combination. By default, CLUSTER is the log format. Because the TUPLE format lists each member combination queried, TUPLE may have a greater impact on query performance than CLUSTER. See Sample Cluster Output for an example of a query log in cluster format. See Sample Tuple Output for an example of a query log in tuple format.
LOGFILESIZE n Specifies the maximum size of an individual query log file in megabytes (MB). The minimum value is 1 MB. The maximum value is 2048 MB (2 GB). If the LOGFILESIZE setting is missing, then, by default, the query log file size is 1 MB. If an initial query log file size exceeds the specification, log information is added to a new query log file. Each time a new file is created, the filename is incremented by one. 
TOTALLOGFILESIZE n Specifies the maximum size of all query log files combined in megabytes (MB). The minimum value is 512 MB (1/2 GB). The maximum value is 4095 MB. If the TOTALLOGFILESIZE setting is missing, then, by default, the total query log file size is 1024 MB (1 GB). Query log files are created until the file size total exceeds the specified maximum. When the maximum is exceeded, a message is displayed and query logging automatically turns off. 
ON | OFF Specifies whether the query logging feature is turned on or off. All query log settings are ignored if this setting is OFF or missing. By default, the setting is OFF.

Generation-range and level-range values are represented in one of the following ways:
 
Generation-Range or Level-Range Value Description
x A specific generation or level number. For example, QUERYLOG NONE GENERATION 2 excludes generation 2 from query logging.
x-y All generations or levels inclusive of number x through number y. For example, QUERYLOG GENERATION 1-3 or QUERYLOG LEVEL 1-3 includes generation or level numbers 1, 2, and 3.
-x For generation-range, all generations within the range 1 through x. For level-range, all levels within the range 0 through x. For example, QUERYLOG GENERATION -2 includes generations 1 and 2. QUERYLOG LEVEL -3 includes levels 0, 1, 2, and 3.
x- For generation-range, all generations within the range from number x through the highest generation. For level-range, all levels within the range from number x through the highest level. For example, QUERYLOG Level 1- includes levels 1, 2, 3 and so on up to the highest level.

Notes

Tips

Sample Query Log Configuration File

Note: # indicates a comment that describes a line of the configuration file. Comments are not necessary to include in the actual query log configuration file.
# Log the Product dimension
QUERYLOG [Product]
# Log Hybrid Analysis members of Product, if applicable
QUERYLOG LOGHAMBRS ON
# Log the Market dimension
QUERYLOG [Market]
# Log members of generation 2 of Market by generation number
QUERYLOG GENERATION 2
# Display log output in cluster format
QUERYLOG LOGFORMAT CLUSTER
# Create log file in C:\QUERYLOG\
QUERYLOG LOGPATH C:\QUERYLOG\
# Start a new log file after an individual log file size reaches 2 MB
QUERYLOG LOGFILESIZE 2
# Turn off query logging after the total size of all log files reaches 1024 MB (1 GB)
QUERYLOG TOTALLOGFILESIZE 1024
# Enable query logging
QUERYLOG ON

Sample Query Log Output

The following segment shows an example of how log settings look in a log file. In the example, the log settings show that all members of Product are logged and that members of generation 2 of Market are logged by generation number. The log format is cluster and the log path is C:\QUERYLOG\.
  <?xml version="1.0" encoding="UTF-8" ?> 
- <root>
  - <session>
     <bootuptime>Wed Jul 23 15:27:26 2002</bootuptime> 
   - <logsettings>
    - <dimensions>
     - <logdim name="Product">
     - <logdim name="Market">
        <spec>GENERATION 2</spec> 
      </logdim>
     </dimensions>
  - <othersettings>
     <logformat>cluster</logformat> 
     <logpath>C:\QUERYLOG\</logpath> 
   </othersettings>
   </logsettings>

Note

A query is a unit of retrieval from the user perspective. The way a user may perceive a query is different than how the server analyzes and executes a query. Even if a user performs a single retrieval, in order for the server to efficiently execute the logical query, the server splits the query into a number of subqueries to execute. Therefore, a single retrieval from the user perspective may actually consist of several subqueries from the server perspective. These subqueries are reflected in the query log.

Sample Cluster Output

The following segment shows an example of how queries are logged in cluster format. The username is listed along with the query execution date and the start time of the query. Each cluster contains two dimension entries. The first cluster shows that members 100 and 200 of the Product dimension were queried. The second cluster shows that member 300 of Product and Generation 2 of Market were queried. The elapsed time to perform the query is also provided.
<query>
 <user>User1</user>
 <time>Tue Aug 13 12:29:49 2002</time>
 <subquery>
  <cluster size="2">
   <dim size="2">
    <member>100</member>
    <member>200</member>
   </dim>
   <dim size="1">
    <member>Market</member>
   </dim>
  </cluster>
 </subquery>
 <subquery>
 <cluster size="2">
  <dim size="1">
   <member>300</member>
  </dim>
  <dim size="2">
   <member>Market</member>
   <generation>2</generation>
  </dim>
 </cluster>
 </subquery>
 <elapsedtime>0.016 seconds</elapsedtime>
</query>

Sample Tuple Output

The following segment shows an example of how queries are logged in tuple format. The username is listed along with the query execution date and the start time of the query. Note that each member of Product is displayed with Market. Each possible member combination is displayed for a given query. The elapsed time to perform the query is also provided.
<query>
 <user>User1</user>
 <time>Tue Aug 13 12:28:14 2002</time>
 <subquery>
  <tuples>
   <tuple>
     <member>100</member>
     <member>Market</member>
   </tuple>
  </tuples>
 </subquery>
 <subquery>
  <tuples>
   <tuple>
    <member>200</member>
    <member>Market</member>
   </tuple>
  </tuples>
 </subquery>
 <elapsedtime>0.02 seconds</elapsedtime>
</query>

Improved #MISSING Handling with DATACOPY

Top

In previous Essbase releases, using DATACOPY on a dense dimension can create blocks populated with #MISSING. This is done deliberately in some instances, because most Essbase batch calculations operate only on existing data blocks. Therefore, DATACOPY is also used to ensure that Essbase creates all necessary data blocks prior to batch calculation.

But if the creation of #MISSING blocks is not required, you may want to avoid the increase in size of the index and page files, and the possibly slower performance that results. For example, a default calculation visits every #MISSING block.

To support that goal, Essbase now provides a SET COPYMISSINGBLOCK command that allows DATACOPY to avoid creating #MISSING blocks during the copy of data from a dense dimension.

Syntax

SET COPYMISSINGBLOCK ON | OFF
DATACOPY...

The default behavior is for the #MISSING blocks to be created (SET COPYMISSINGBLOCKS ON), to provide backward compatibility.

Notes

Example

[Fri May 31 10:35:03 2002]Local/Test6/Test6/essexer/Info(1012574)
Datacopy command copied [1] source data blocks to [0] target data blocks

[Fri May 31 10:35:03 2002]Local/Test6/Test6/essexer/Info(1012576)
Datacopy command skipped creating [1] target data blocks with CopyMissingBlock OFF

Invalid Block Header Identification and Correction

Top

Essbase helps you assess the severity of invalid block header errors (IBH) and provides tools to repair the corruption indicated by the presence of some IBHs.

There are two types of IBH errors that can be corrected:

Finding IBH Errors

You must set the server configuration setting IBHFIXTHRESHOLD in essbase.cfg and restart OLAP Server before you can find and fix IBH problems. The IBHFIXTHRESHOLD setting controls how many IBH messages are returned to the client or server log, relative to the number of level 0 blocks written to disk. After the threshold is reached, no corrective action can be performed, and a message is sent to the client suggesting that the database be rebuilt.

Syntax

IBHFIXTHRESHOLD [appName | xxxx] [dbName | xxxx] percentage

appName and dbName are optional, but be sure to specify an application name if you specify a database name. You can substitute "xxxx" for either appName or dbName, or both. "xxxx" is a wildcard for the application name and database name.

percentage is the value of the percentage of IBHs reported relative to the number of level 0 blocks on disk. Once Essbase reaches the threshold, Essbase sends a message to the client requesting that the user rebuild the database, and shuts down. Valid values are whole numbers 0 through 100.

If you receive a message suggesting you rebuild a database, do so using procedures described in the Database Administrators Guide.

If messages are written to the client or server log indicating the presence of IBH errors, but the threshold that requires the database be rebuilt is not reached, you can either rebuild the database or you can find and fix the errors using instructions in the next section.

Fixing IBH Errors

Use any of these methods to fix IBH Errors: Note: If Essbase runs in uncommitted mode when it receives an IBH error message, the current transaction may stop without any rollback, meaning that some data may have changed. Be sure to verify that all transactions that you expected to finish have finished. If not, you may need to clean up the data or rebuild the database.

Operating System Errors

Essbase cannot fix IBH issues that result from hardware or disk controller problems, including physical disk issues, that prevent Essbase from reading any of the persistent files such as the page file, index file or the transacations file. If your log contains entries similar to those below, you must rebuild the database to recover.

OK/INFO - 1006016 - Invalid block header: Illegal block type.
OK/INFO - 1006046 - A read from file [D:/ESSBASE\APP\Migr500\Basic\ess00001.pag], to address [0x05f71458] with handle [6] from offset [1081683835] for [992] bytes, failed with error [13] and O/S return code [23] after [-1] bytes.
OK/INFO - 1070121 - Current size of file
[D:/ESSBASE\APP\Migr500\Basic\ess00001.pag] is [2147475435] bytes.
OK/INFO - 1006050 - For transaction [Basic], the [3088] byte Input Transfer Buffer is at address [0x05f71458] and the [3088] byte Output Transfer Buffer is at address [0x026bf2b0].
ERROR - 1006004 - Unable to Read Information From Page File.
ERROR - 1241101 - Unexpected Essbase error 1006004.

In the example log output above, Essbase issued a read request at an offset of 1081683835 which is a valid offset based on the size of the page file. The request is to read 992 bytes starting from that offset. However, hardware problems cause the read request to fail, and the OS return code for failure is returned (13 in this example). In this situation, Essbase is unable to continue reading the page file, and the IBH diagnosis operation stalls.

Improved Exception Handling for Unix Platforms

Top

If OLAP Server shuts down abnormally and cannot restart, OLAP Server generates an exception log, .XCP, to help troubleshoot the problem. For Hyperion Essbase releases 6.5.1 and greater, on Unix platforms, Essbase also creates a core file with additional information about the exception. The location of the core file depends on the type of abnormal shutdown:

If you shut Essbase down incorrectly, such as by killing the process, the ESSBASE.date and ESSSRV.date directories exist, but they are empty. You may remove the empty directories.

If present, send both the core file and the .XCP file to Hyperion Technical Support to determine why the abnormal shutdown occurred. If you have old core files from previous abnormal shutdowns, you may remove them to free up disk space. Do not remove recent core files unless you are certain that you will not need to send them to Hyperion Technical Support.

Application Memory Manager

Top

Essbase enables memory management by providing controls on the maximum amount of memory an application can use. Essbase also writes messages to an application log as soon as the application's memory use exceeds 90% of the limit that you set. After the limit is met 100%, OLAP Server stops the application.

To enable OLAP Server to manage application memory use:

  1. Create a new memory configuration file, or edit an existing memory configuration file, using the instructions in Memory Configuration File.
  2. Save the memory configuration file in the ARBORPATH/bin directory.
  3. Start the application. You must restart an application after you change its memory configuration file, because the application reads the memory configuration file only once, during start up.
  4. Monitor the log.
When 90% of the value in the configuration file is reached, OLAP Server writes this warning message to the application log:

Application is using [n] bytes of memory. It is more than 90 percent of the limit set in the memory config file.

If the application uses 100% of the memory as limited by the Memory Configuration File, OLAP Server writes this error message to the application log and stops the application:

Application is using [n] bytes of memory, and is requesting a new memory block of [n] bytes. The memory has exceeded the limit.

When the 90% warning messages appear in the log, the database administrator may wish to take corrective action:

See the Essbase Database Administrator's Guide for more information about memory use. Refer to the sections on cache settings, performance, and estimating memory use.

Memory Configuration File

To enable OLAP Server to write messages to the log when application memory use exceeds 90% of a value you determine, and to limit the memory used by a single application to 100% of the value in the file, create or edit a memory configuration file and add the MEMORY LIMIT configuration setting:

Example

MEMORYLIMIT 2 G

This allows OLAP Server to use up to 2 GB memory for an application.

MEMORYLIMIT 1024 M

This allows 1 GB memory for an OLAP Server application.

Notes


Copyright 2002 Hyperion Solutions Corporation.

All Rights Reserved.