Category Archives: Bugs and Issues

URL-variable not passed thru to session variable

This one I found to be interesting:

The goal is to set session variables using url variables, but can you also do this for the user and password ?
url variable (&Upwd) is not passed to session variable USER_PWD.
The variable USER is correctly passed, the variable USER_PWD is not

The steps to set an OBI session variable via a URL call utilizing the

instanceconfig.xml tag should be as follows

1. Create a session init block that will act as a ‘placeholder’ for the
session variable to be set via the url call – the variable can be set to
anything.

2. Set the ‘Enable any user to set the value’ option for the variable.

3. Add the following tag block to the instanceconfig.xml file anywhere
between the <ServerInstance></ServerInstance> tags:

<Auth>
<UserIdPassword enabled=”true”>
<ParamList>
<Param name=”NQ_SESSION.TEST_VAR”
source=”url”
nameInSource=”SETVAR”/>
</ParamList>
</UserIdPassword>
</Auth>
“TEST_VAR” should match the session variable name (case sensitive).

4. The following option will need to be appended to the OBI url passed –
&SETVAR=’variable value to pass. So a full example would be:
http://localhost:9704/analytics/saw.dll?Dashboard&nqUser=USER001&nqPassword=US
ER001&SETVAR=SomeValue

However, note that you cannot set the value of any System Security Session variable (specifically USER, PROXY, GROUP and WEBGROUPS) using any source method (e.g.: url, cookie, httpHeader) by design. Having this ability would open possible security breaches.

If you attempt to set the USER variable with the following instanceconfig.xml setting:

<Param name=”NQ_SESSION.USER” source=”url” nameInSource=”nquser” />

You will get the following error when using the url: http://localhost:9704/analytics/saw.dll?Dashboard&nquser=user1&nqpassword=public

nQSError: 10018: Access for the requested connection is refused

OBIEE variable

Parameter For Max Number Of Rows Not Taken Into Account

This is probably helpful for someone who migrated from OBIEE 10G to 11G and need to retain the same settings. I’m still wondering who needs to see reports with 500k rows, but still.

In OBIEE 10g the ResultRowLimit was working with a value of 5,000,000 (65,000 is the default value).

We have tried to do the same in 11g through EM > BI > Core application > Capacity Management >

Performance > Maximal number of rows in a tabular view set from 65,000 to 5,000,000.

The Servers have been restarted and the report is still not running.

The SQL query fetches less than 200,000 rows. i.e. one of our reports is 172,310 rows.

Impact on Business:
This problem impacts a lot of reports through the National Healthcare agency.
These reports used to work in 10g.

View Display Error

Exceeded configured maximum number of allowed input records.
Error Details
Error Codes: EKMT3FK5:OI2DL65P
Location: saw.httpserver.processrequest, saw.rpc.server.responder, saw.rpc.server,

saw.rpc.server.handleConnection, saw.rpc.server.dispatch, saw.threadpool, saw.threadpool, saw.threads
SQL Issued: 858~k1vsg0egoo7i60qhn13qv8lj52

Moreover, the same matter occurs in a report with 49220 lines fetched from Database.

Could it be linked to the fact that these reports use a pivot table to perform a second aggregation phase?

The final Pivot view is about 10 columns by 10 lines.
Cause
The Number of Rows setting was verified within OBIEE 11.1.1.5.

Capacity Management > Performance

Maximum Number of Rows Processed when Rendering a Table View

This setting limits how much data is retrieved from the BI Server and processed. The default value is 65000.

Reducing the maximum number of rows processed can significantly improve performance by reducing the system resources that can be consumed by a given user session.

Number of Rows 65000

It was found that the cause was the Pivot Table (which generally have more performance overheads when compared to a standard Table).
Solution
Within the instanceconfig.xml file in 10g you would have had to adjust the limits in your file for the parameters below.



In OBIEE 11g, these values below are discussed in the following Guides.

Oracle Fusion Middleware System Administrator’s Guide for Oracle Business Intelligence Enterprise Edition 11g Release 1 (11.1.1) E10541-02

18.3.1 Manually Configuring for Data in Views

If changes are made to the instanceconfig.xml file please carefully refer to the section stated below:
(Section 3.4, “Using a Text Editor to Update Configuration Settings.”)

When the following changes were made to the instanceconfig.xml file, this fixed the issue.





1000000
5000000



Oracle suggests that “These values were specific to this environment and the reports being run by that organisation. Other readers should note that increasing these values to too high a level may have an impact on performance (which is hardware dependent).”

NULL value in multi-select prompt

There is a NULL value in the Multi Select Prompt. When this blank value is selected with other selections from the prompt, the prompt either blanks out or the results of the report returns all values of the field instead of filtering only for the selected criteria.

Cause
The cause of the issue is to have a NULL value (it comes from the datawarehouse) as an option in the multi-select prompt because when is selected, in the textbox this symbol ” appears as the selected option and the filter does not work.

It was tested inhouse adding NULL values in the dimension and fact tables of a business model.
Solution

There are four options to resolve this issue:

1.- Validate if NULL values are relevant for the bussiness analysis (for some reason in the datawarehouse NULL values were stored). If they are not, you have to delete them in Dimensions and Fact tables.

2.- Change the physical table type in your rpd in all tables you have NULL values and use a SELECT like this:

SELECT LOGIN, RESP
FROM NQ_LOGIN_GROUP
WHERE NOT LOGIN IS NULL

Doing this, you only have NON-NULL values in your Multi-select prompt.

3.- Replace the NULL value with a new name like UNSPECIFIED in ALL tables you which are related.

4.- Log an enhancement request to review that multi-select prompts works with NULL values.

Customer decided to apply the third option, change the NULL values by a value like UNSPECIFIED. They couldn’t delete the NULL values so that was the best option for them.

Also I’ve already logged an enhancement request to review that multi-select prompts works with NULL values or display an error or warning message.

Few recent Knowledge-based updates

I’ve found the following items to be very interesting as I’m very much interested in running OBIEE in a cloud.
Question someone asked on OS:
Q:How to cluster OBIEE that is installed on two virtual machines?
And their response was:
A:It is not currently possible to use Virtual machine names for OBIEE within a Cluster. The following Enhancement Request exists:
BUG#7576055
VIRTUAL MACHINE NAME FOR CLUSTERED OBI SERVER

This one is interesting, because it’s not just applicable to headers, but to some other elements that may contain HTML:
Q:Is it possible to add HTML code into a Column Header in OBIEE?

A:In order to render HTML in OBIEE (i.e. Answers, Dashboards, etc) please ensure you have set the following parameter “HardenXSS” to FALSE in the instanceconfig.xml file.

Example:


[ServerInstance]
[HardenXSS]false[/HardenXSS]
[/ServerInstance]

Last one is related to using external methods to get in to OBIEE.

Goal
1) Customer has a JSP and java application running on web sphere application server which uses OAM for single-sign-on.
2) In the same JSP application they have embeded a report which gets the data from OBIEE webservices. The actual report is deployed on OBIEE presentation server and uses OAM for authentication. When the user logs in to java application and clicks on the page which invokes a report from OBIEE customer doesn’t want to prompt for authentication again.
3) Customer does not see any OBIEE login webservices which takes as input parameter the authentication token or cookie generated in JSP application.
A:
There is currently no mechanism within the OBI Web Services to use Single Sign-on (SSO).

There are some methods that may assist further with customer requirement (i.e. impersonate() Method and impersonateex() Method). These methods should allow the users to logon and impersonate another user when customer only have the Administrators Login and Password.

However, these methods are not SSO as customer would still need to provide a username and password for the SOAP client (i.e. Administrator/Administrator) from within their J2EE application.

In order to overcome the fact the OBI Web Services does not use SSO, customer may want to install a new Presentation Server. The dedicated Presentation Server can then have the SSO disabled and can be used solely for the WEB Services application and nothing else.

I wonder what are security implications of such arrangement.

Have a good day!

OBIEE issues – you asked I answer (find answer)

[ad#banner]
Hello,

I’m back after being busy with some really interesting issues at work.  I found a minute and I’d like to post few items.

First of all – the question “In OBI, How to move System Wide default settings from one environment to another?” comes up a lot – here’s an official response that I found on the knowledge base:

System wide default settings cannot be moved from one environment to another by design. The recommended way to move any other changes is to perform an Archive and then an unarchive. But, this method does not work for System wide default settings

The following Bug has been logged to make this feature available in the future releases:
BUG 8271294 – ARCHIVING AND UNARCHIVING DOES NOT STORE SYSTEM WIDE DEFAULTS

So now you know what to tell your project manager.

Second item I found interesting is:

“How to reduce the space between multiple pivot tables placed side by side?”

1. Provided that s_oracle10 is in use; backup the following files before editing them
– C:\OracleBI\web\app\res\s_oracle10\b_mozilla_4\views.css
– C:\OracleBI\oc4j_bi\j2ee\home\applications\analytics\analytics\res\s_oracle10\b_mozilla_4\views.css

2. Set the following section in both files above:
.PTSectsTable

{
border:
none;
border-spacing:0px;
padding:0px;
margin:0px;
}

3. Restart the OC4j and the Presentation server
Third item,
“When defining multiple connection pools for a database in the physical layer of the rpd, is it possible to make the queries use the 2nd connection pool because current behavior seen is that the 1st connection pool is used by default for all queries?”

There is currently no way to make a query use a specific connection pool. The following bug has been raised to address this requirement- As you are already aware, current workaround is to have separate database defined in physical layer :

Bug 9392303 – FIRST CONNECTION POOL CHOSEN BY DEFAULT FOR ALL QUERIES

Customers requirement :

They have a new application that need connect to mutiple database, so under
physical layer root have two connection pool.
So under Database in physical layer 1st connection pool points to an oracle
instance and second connection pool points to a different oracle instance.
When we run report in answers, the connection information is always taken
from the 1st connection pool by default – hence we get table cannot be found
ora error. Reason being the table exists in the database instance referenced
in the 2nd connection pool.
When we do view data in RPD , the results return fine – this is because while
clicking on view data, we explicitly have to select the connection pool.
While creating the logical table/column, we only specify the database name
and the schema name and the table name- no place to provide connection pool
info – hence the server chooses the 1st one by default.
Need a way to fix this – current workaround suggested is to have multiple
database created in physical layer.

Thank you wonderful Oracle support representatives. You’re doing great job – often overlooked, but appreciated nevertheless.
Have a safe OBIEE day