Understanding Oracle BI EE Presentation Server Cache(s)

Within the Oracle BI System, multiple components provide a caching mechanism to re-use previously executed Reports to improve query performance of subsequent requests. The following diagram provides an Overview of the main Architecture and main caching components:

Oracle BI Server Cacheing cropped

By default, the Oracle BI Presentation Server Cache is not actived. However, the Oracle BI Presentation Server additionally provides a Oracle BI Presentation Server Cache which can not be deactived. This “Cursor” Cache can (only) be viewed from the Session Monitor Administration Page http://localhost:9704/analytics/saw.dll?Sessions:

session monitor

Thus, even when the Oracle BI Presentation Server Cache is not actived, subsequent execution of the same Analysis maybe retrieved from the Oracle BI Presentation Server Cursor Cache which may often mislead the perception of cacheing.

For the first execution of an Analysis a new Cursor and Cursor Cache maybe created eventually:

cache monitor

A subsequent execution of the same Report will return instantly (even with no Presentation Server Cache configured) since the Report can be retrieved from the Presentation Server Cursor Cache. No additional Cursor will be created and only the time of execution will be updated for the previous Cursor.

cache monitor 2

As said before, the Cursor Cache can not be disabled and the Cursor Cache can only be purged manually from the Session Monitor. However, a Report/Analysis can be foreced to bypass the Presentation Server Cursor Cache (and Presentation Server Cache) by checking the bypass Presentation Server Cache option on the Advanced Tab of a Analysis.

bypass

The disk directory of the Cursor Cache is not documented by Oracle, but they are stored under the query cache folders of:

C:\oracle\middleware\instances\instance1\tmp\OracleBIPresentationServicesComponent\coreapplication_obips1\querycache_0

Unbenannt2

Which places a result set file for the respective Presentation Server Cursor Cache:

Unbenannt4

To active the regular Presentation Server Cache, the instanceconfig.xml needs to be edited. The instance config can typically found here (for 11g):

C:\oracle\middleware\instances\instance1\config\OracleBIPresentationServerComponent\coreapplication_obips1

To active the Caching the following xml elements need to be added to the file:

<ServerInstance>
  <Cache>
    <Query>
      <MaxEntries>100</MaxEntries>
      <MaxExpireMinutes>60</MaxExpireMinutes>
      <MinExpireMinutes>10</MinExpireMinutes>
      <MinUserExpireMinutes>10</MinUserExpireMinutes>
    </Query>
  </Cache>
<ServerInstance>

After restarting the Presentation Server, the Cache Files will be created in the following directory:

C:\oracle\middleware\instances\instance1\tmp\OracleBIPresentationServicesComponent\coreapplication_obips1\obis_temp

Summary: Even with no Presentation Server Caching enabled, the Presentation Server Cursor Cache will cache result sets to fulfill subsequent Analysis requests from the Client.

Advertisements

Installing Oracle R on Database VM Image

Download the Oracle Pre-Built Database Developer VMs from OTN.image
Import the extracted VM into Virtual Box and bootup the Virtual Machine. After starting the VM, the following screen is presented witin Virtual Box:
image
check the Linux Version of the Downloaded Virtual Machine with below command:

# uname -r

For this VM it is: 4.1.12-61.1.27.el7uek.x86_64, thus: Oracle Enterprise Linux 7.

Install R (distribution) for Oracle R Enterprise

Afterwards, switch user to root (Password is “oracle”) and navigate to the yum Repository configuration:
image
using the vi (i command for – – inserting- – Mode and Esc for exiting the insert Mode, save with :wq) update the following sections within the repo file:

[ol7_latest]
enabled=1

[ol7_addons]
enabled=1
[ol7_optional_latest]
enabled=1

e.g.:
image
Install R with the following command
image
this automatically downloads and performs the installation:
image
image
image

Installing Oracle R Enterprise Server

Add the Oracle Home Lib to the Library Path environment variable:
image
This can also be added to the ~/.bashrc
image
As next step, download the Oracle R Enterprise software from OTN.
image
And store to a installation directory e.g. /u01/ORE_Inst_Dir
image
and unzip the files:
image
Start the installation by running the installer:
image

Installing Oracle R Client

Unzip the Client zip files:
image
switch to root user and install all unzipped files:
image
Start Oracle R Client with the ORE command and load the Oracle R libaries with library(ORE). When loading the R libaries, the following error is thrown:

Loading required package: OREembed
Error in dyn.load(file, DLLpath = DLLpath, …) :
   unable to load shared object ‘/u01/app/oracle/product/12.1.0.2/db_1/R/library/png/libs/png.so’:
   libpng12.so.0: cannot open shared object file: No such file or directory
Error: package ‘OREembed’ could not be loaded


image

Since, the file libpng12.so.0 is not available it needs to be installed:
image
image
[Thanks to the following article which features the same issue]

After installing the missing file, the ORE Libaries are loaded successfully within R:
image

Further references:

http://rajiv-kuriakose.blogspot.de/2016/03/how-to-install-oracle-r-enterprise-on.html

Official Oracle Documentation:

https://docs.oracle.com/cd/E57012_01/doc.141/e57007/install_oreserver.htm#BGBJIIAG

Creating single virtual domain for Siebel and OBIEE

If Siebel CRM and Oracle BI EE are running on two different Servers (which should be the case for most implementations), then the embedded Oracle BI screens may not function properly for all actions such as, opening the properties for List Formats, requiring a second click for editing within the formula editor of the segment designer due some issues with cross-site scripting. This behavior is also documented within the following SR: avoid UI navigation issues associated to Siebel Marketing – OpenUI integrated to OBI (2008422.1) and within the Official documentation of the Installation guide: https://docs.oracle.com/cd/E23943_01/bi.1111/e16364/siebel_crm_integration.htm#BIEIT3307

Since these various issue are caused by some cross-site scripting, the workaround is to pretend to the client that Siebel and Oracle BI are running on the same host, hence creating a single virtual domain for Siebel and OBIEE.

This can be achieved by configuring a proxy reverse setting on the HTTP Web Server where Siebel web extensions are running. This proxy reverse configuration will exchange the hostname of OBIEE e.g. oraclebiserver.com with the hostname of the Siebel host e.g. siebelserver.com

Within the support note of the SR (2008422.1) OHS is used for this proxy reverse configuration. The following diagram shows the updated request flow for the single virtual domain:

A short step-by-step guide for the Workaround using OHS can be found here.

Tip: Using Row-wise variables and Initialization Blocks

Aside

Tip: Using Row-wise variables and Initialization Blocks

It is often required to use row-wise variables (array’s) to store a list of items. E.g. For the security/visibility it may be required to store the Organization a User has access to. This can be achieved using row-wise variables and Initialization Blocks from OBIEE.

SELECT ‘ActiveOrgs’, OrganizationTable.Name
FROM OrganizationTable
WHERE OrganizationTable.Use = ‘:USER’

This will initialize the Variable ActiveOrgs with the results of the Initialization Blocks. This variable can than be used at other places to filter the respective Organizations.

 

detecting Report (Analysis) Orphans in OBIEE

A Dashboard typically represent a combination of different Reports to provide summary information about a Business Process or Sub-Process e.g. with HR: A Recruiting Dashboard may contain Reports about hiring sources and the respective Time to Hire or a Dashboard provides Reports about certain balance information E.g. current capital in Fixed Assets. Over time these Reports may be replaced or exchanged and many reports may only be created for Testing purposes. The management of all these Reports becomes very difficult and the IT Department may want to understand the structure of the Web Catalog in terms of Report usage on Dashboard and Report Orphans. The Oracle BI Sample App provides a example of how this can be implemented under the Lifecycle and Admin section:

image

 

Pre-built Reports exist that Analyse the structure of the Webcat to determine unused Analysis:

image

These samples require to execute scripts on the BI instance, which is also documented within the Sample App Image under /app/oracle/SAScripts/ReferenceChecker.

BI Publisher now available with OAC

Until today, Oracle BI Publisher was only available as a (SaaS) bundle with Oracle Fusion Applications Cloud and OTBI, see also a previous Article. However, with Oracle Analytics Cloud, Oracle BI Publisher is now also available as a “first degree” Platform Cloud Service (PaaS) giving more flexibility especially in terms of Data Sources. This allows to create highly formatted Reports/Documents such as Invoices, Purchase Orders, Dunning Letters without the context of Oracle Fusion Applications Cloud.

See the full announcement here.

Issue when using Report prompts within OTBI Answers and OTBI Fusion

A strange Issue exists with OTBI in terms of Report prompts. If a User adds a prompt directly within the Report, the prompts appear correctly within BI Answers. However, if the same Report is opened from within Oracle Cloud, the prompts are not shown to the User.

Prompts added to Report:

image

Prompts appearing in BI Answers of OTBI when running (opening) the Report:

image

However, when opening the same Report from Fusion (OTBI embedded) the Report executes without showing the prompts, even though the prompt has been specified as “required”:

image

When clicking on the “Edit” button of the Fusion Catalogue Browser, the following warning message is being displayed:

image

The standard provides prompted Analysis usually of Type “Dashboard”, hence this Issue is not applying for standard content. E.g. the Analysis on Department details also provides filters as Dashboard prompts:

image

Translation of multi-lingual attributes within Oracle Fusion Cloud and OTBI

Oracle Fusion Cloud allows to enable text fields as multi lingual enabled attributes. As part of the batch upload process e.g. from Fusion Product Hub, these enabled attributes can be specified within different languages:

image 

Within Oracle Fusion Cloud, these attributes are displayed in  the respective Language of the logged in User. These is also true for OTBI. E.g. for US the respective item description is displayed in US:

image

If a user logges into OTBI with RUS language, the item description is automatically displayed with RUS description:

image