Additional Blogs by Members
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member
0 Kudos

OLAP Data Access Logging: Part 1 - Introduction and basic settings - Introduction and basic settings
Part 2 - Modules and Components
OLAP Data Access Logging: Part 3 - API call timings - API call timings
OLAP Data Access Logging: Part 4 - Query logging - Query logging
OLAP Data Access Logging: Part 5 - Log Formatting - Log Formatting
OLAP Data Access Logging: Part 6 - Assertions, Unix and 64 bit Windows - Assertions, Unix and 64 bit Windows
OLAP Data Access Logging: Part 7 - Choosing the correct settings and example defaults - Choosing the correct settings and example defaults

Full article also available in SDN's Article section here.

Modules and Components

The OLAP Data Access logging allows the level of information logged to be controlled two levels: modules and components. A module corresponds roughly to a single dll. A component is a class within that dll. There are also non-dll based modules that correspond to transversal functions like memory management.

Each module or component has an associated verbosity. This means that different levels of logging can be set for different modules and components. Verbosity settings are optional for all modules and components. If no verbosity is set for a particular module or component the parent setting will be used. For example, if a particular component doesn't have a verbosity set, the setting used will be the parent module's setting. If a particular module does not have a setting it will use the global setting.

Finer grained verbosities take precedence over courser grained verbosities. So if there is a global, module and component setting, then the module setting takes precedence over the global, and the component setting takes precedence over the module setting.

Modules

To control logging using modules first a folder must be created under the root logging folder. The table below shows the folder for the different versions.

Version

Modules Folder

SOFA 11.5

[HKEY_LOCAL_MACHINESOFTWAREBusiness ObjectsSuite 11.5OLAP IntelligenceOCCA(o)LogModules]

SOFA 12

[HKEY_LOCAL_MACHINESOFTWAREBusiness ObjectsSuite 12.0OLAP IntelligenceOCCA(o)LogModules]

MDA 11.5

[HKEY_LOCAL_MACHINESOFTWAREBusiness ObjectsSuite 11.5VoyagerMDALogModules]

MDA 12

[HKEY_LOCAL_MACHINESOFTWAREBusiness ObjectsSuite 12.0MDALogModules]

Under this folder, further folders need to be created: one for each module that needs a verbosity specified. The table below contains a non-exhaustive list of modules with a brief description of what the module corresponds to.

Name

Description

Relevant Versions

APIMODULE

Logs calls into the OLAP data access component's API

MDA 11.5 and 12

APISUPPORT

Information from the APIs support library

MDA 11.5 and 12

COMMONMODULE

Information common to all data providers

MDA 11.5 and 12

ESSBASEMODULE

Information from the Essabse data provider

All

JNIMODULE

Information from the component that links the OLAP data access components C++ API to its Java API via JNI

MDA 11.5 and 12

MDA_SUPPORT

Information from the general support library

MDA 11.5 and 12

ODBOMODULE

Information from the ODBO data provider for OLAP servers like Microsoft Analysis Services

All

ODBOPROVIDERMODULE

Logs errors encountered when trying to discover available ODBO provider on the system

MDA 11.5 and 12

ODBOSHAREDUTILITIES

Information about which ODBO providers are available on the system

All

RORMODULE

Web Intelligence/Universe specific component. Importantly logs out XML query specifications.

MDA 12

SAPMODULE

Information from the SAP BW data provider.

All

UTILITIES

Information about making connections

All

COMWRAP

Logs calls into the OLAP data access component's API

SOFA 11.5 and 12

COUTILITIES

Information from the data connection API

SOFA 11.5 and 12

RORFLATTENER

Web Intelligence/Universe specific component. Importantly logs out XML query specifications.

SOFA 11.5

SOFA_Common

Information common to all data providers

SOFA 11.5 and 12

support_dll

Information from the general support library

SOFA 11.5 and 12

MEMORY

Information about the creation, destruction and reference counting of objects

All

INTERFACE

Additional tracing information.

SOFA 11.5 and 12

To set the verbosity for a particular module, a folder with the name of the module needs to be created under the Modules folder and then a DWORD value called verbosity. For example:

[HKEY_LOCAL_MACHINESOFTWAREBusinessObjectsSuite 12.0MDALogModulesAPIMODULE]

"Verbosity"=dword:0000000a

[HKEY_LOCAL_MACHINESOFTWAREBusinessObjectsSuite 12.0MDALogModulesODBOMODULE]

"Verbosity"=dword:00000005

The above will set the verbosity for the module APIMODULE to 10 and the verbosity for module ODBOMODULE to 5 for version MDA 12. Here is a screen shot of how this might look in the registry.

Components

Within each module there are a number of components. The components for each module are not listed here. However the names of particular components can easily be discovered by looking at an existing log file. For example, consider the three following lines from a log file:

2009-07-16T03:36:13.484:APIMODULE: CubeViewImpl: CubeViewImpl::toXML

2009-07-16T03:36:13.531:ODBOMODULE: ODBOMemberSet: Calling ODBOMemberSet::_getNumItems ...

2009-07-16T03:36:13.546:ODBOMODULE: ODBOCube: Query executed correctly

Each line starts with a timestamp followed by a colon and then a word that should be familiar from the list of modules given above. The first log line is from the APIMODULE and the second and third are from the ODBOMODULE. There is another colon after the module name. The next word is the name of the component. So the first line is being logged by the CubeViewImpl component, the second by the ODBOMemberSet component and the third by the ODBOCube component.

To specify the verbosity for the logging of a particular component, first a folder called Components needs to be created under the specific module folder. Then a further folder with the name of the component needs to be created under the Components folder. Finally a DWORD value with the name Verbosity needs to be created in the folder named after the particular component.

Here is an example for the modules and components from the sample log lines above:

[HKEY_LOCAL_MACHINESOFTWAREBusinessObjectsSuite 12.0MDALogModulesAPIMODULE]

"Verbosity"=dword:0000000a

[HKEY_LOCAL_MACHINESOFTWAREBusinessObjectsSuite 12.0MDALogModulesAPIMODULEComponents]

[HKEY_LOCAL_MACHINESOFTWAREBusinessObjectsSuite 12.0MDALogModulesAPIMODULEComponentsCubeViewImpl]

"Verbosity"=dword:00000000

[HKEY_LOCAL_MACHINESOFTWAREBusinessObjectsSuite 12.0MDALogModulesODBOMODULE]

"Verbosity"=dword:00000000

[HKEY_LOCAL_MACHINESOFTWAREBusinessObjectsSuite 12.0MDALogModulesODBOMODULEComponents]

[HKEY_LOCAL_MACHINESOFTWAREBusinessObjectsSuite 12.0MDALogModulesODBOMODULEComponentsODBOMemberSet]

"Verbosity"=dword:00000005

[HKEY_LOCAL_MACHINESOFTWAREBusinessObjectsSuite 12.0MDALogModulesODBOMODULEComponentsODBOCube]

"Verbosity"=dword:00000001

Here is APIMODULE is set to full verbosity but nothing will be logged for the CubeViewImpl component. There will be no logging from the ODBOMODULE module except for the ODBOMemberSet component which will log at a verbosity of 5 and the ODBOCube component which will log at a verbosity of 1.

Here is a screen shot of what this looks like in the registry: