By hamsun on Nov 04, 2013
How to set the log level from a Session variable Initialization block
As we know it is normal to set the log level non-zero for a particular user when we wish to debug problems. However sometimes it is inconvenient to go into each user’s properties in the Admin tool and update the log level. So I am showing a method which allows the log level to be set for all users via a session initialization block. This is particularly useful for anyone wanting an alternative way to set the log level.
The screen shots shown are using the OBIEE 11g SampleApp demo but are applicable to any environment.
Open the appropriate rpd in on-line mode and navigate to Manage > Variables.
Select Session > Initialization Blocks, right click in the white space and create a New Initialization Block.
I called the Initialization block Set_Loglevel .
Now click on ‘Edit Data Source’ to enter the SQL.
Chose the ‘Use OBI EE Server’ option for the SQL. This means that
the SQL provided must use tables which have been defined in the Physical layer
of the RPD, and whilst there is no need to provide a connection pool you must
work in On-Line mode.
The SQL can access any of the RPD tables and is purely used to return a value
of 2. The ‘Test’ button confirms that the SQL is valid.
Next, click on the ‘Edit Data Target’ button to add the LOGLEVEL variable to the initialization block.
Check the ‘Enable any user to set the value’ option so that this
will work for any user.
Click OK and the following message will display as LOGLEVEL is a system session variable:
Click ‘OK’ to save the Initialization block. Then check in the On-LIne changes.
To test that LOGLEVEL has been set, log in to OBIEE using an administrative login (e.g. weblogic) and reload server metadata, either from the Analysis editor or from Administration > Reload Files and Metadata link. Run a query then navigate to Administration > Manage Sessions and click ‘View Log’ for the query just issued (which should be approximately the last in the list). A log file should exist and with LOGLEVEL set to 2 should include both logical and physical sql. If more diagnostic information is required then set LOGLEVEL to a higher value.
If logging is required only for a particular analysis then an alternative
method can be used directly from the Analysis editor.
Edit the analysis for which debugging is required and click on the Advanced tab. Scroll down to the Advanced SQL clauses section and enter the following in the Prefix box:
SET VARIABLE LOGLEVEL = 2;
Click the ‘Apply SQL’ button.
The SET VARIABLE statement will now prefix the Analysis’s logical SQL. So that any time this analysis is run it will produce a log.
You can find information about training for Oracle BI EE products here or
in the Oracle
University Learning Paths.
Please send me an email at firstname.lastname@example.org if you have any further questions.
About the Author:
Gerry Langton started at Siebel Systems in 1999 working as a technical instructor teaching both Siebel application development and also Siebel Analytics (which subsequently became Oracle BI EE). From 2006 Gerry has worked as Senior Principal Instructor within Oracle University specialising in Oracle BI EE, Oracle BI Publisher and Oracle Data Warehouse development for BI.