Thursday 5 April 2012

OBI EE 10g / 11g - Tutorials - Section 01 - Basic Architecture

The first thing you should do before your first OBI EE installation is to identify the basic components of OBI EE and understand the relation between them. This is generally known as the architecture of OBI EE.

Oracle BI EE has four (4) primary components -
1> Oracle BI Server
2> Oracle BI Presentation Server and Oracle BI Java Host
3> Oracle BI Scheduler
4> Oracle BI Cluster Controller 

[Note : In case of Microsoft Windows environments the second component is broken into two windows services. For the Linux and Linux like operating systems they are started from a single process.]

Along with these primary components there are some other secondary Oracle BI objects that are closely involved in the configuration of basic architecture. They are -
6> Repository File (RPD), It hold the relationship among the data in physical and business views.
7> Presentation Catalog File (Webcat). It hols the metadata about the viewing objects like a request or dashboard.
8> BI Plug-in (analytics.ear), It needs to be deployed on a web server application server to complete the total architecture.

Each of these primary components have ability to listen service-requests from its immediate client application and send response to those requests. The basic listen ports for these components are as follows :-
1> Oracle BI Server : 9703
2> Oracle BI Presentation Server : 9710
3> Oracle BI Java Host : 9810
4> Oracle BI Scheduler : 9705
5> Oracle BI Cluster Controller : 9706

[Note : All of these ports are configurable and if you want to change them for extra security they can all be changed. I will provide the location of each of these setting at the end of this section]

Now let us discuss the journey of an user request from component to componet. 

The user normally access OBI EE application using its HTTP plugin "analytics/saw.dll" deployed in either IIS or in some other JAVA based application servers. 

[ Additional Information : In case of IIS you will be creating a virtual directory name analytics which will point to your application directory at ORACLEBI_HOME/web/app. In case of default installation the ORACLEBI_HOME will be C:\OracleBI thus the full path will be C:\OracleBI\web\app. In case of a java application server like Oracle Application Server or Weblogic, you have to deploy the Enterprise Archive File (ear) or Web Archive File (war) on the oc4j or managed server instance. The default name of this archive file is analytics and this can be found under ORACLEBI_HOME/web directory.]

The analytics plugin then send the requrst to the BI Presentation service. If this is the first request from the user (i.e. login and session creation request), the Presentation Service sends the request to the Cluster Controller. Cluster Controller has the track of the lightly loaded servers and it gets a session from these server and send that reference back to the Presentation Service. Finally Presentation Service directly communicated with the BI Server to fullfill the user login request. Once the login is complete all the communication is directly happen between Presentation Service and BI Server and the Cluster Controller does not have any role on it. 

Now let us understand what happens when the use executes a report request through the analytics plugin. 
-> Same like the earlier one The plugin will route the request to the Presentation Server. 
-> The presentation server will check if the user has access to the report or not. (Defined in Webcat Folder)
-> If the access is there then the Presnetaion Service will sent the Logical SQL of the report to the BI Server. (Cache will be consulted before sending the query to BI Server)
-> BI Server will check if the user has access to the requested Logical columns or not. (Defined in RPD)
-> If access is present, it will add the filter and send the Physical SQL to the Databases. (Cache will be consulted before sending the query to Database)
-> Database then send the rows fullfilling the Physical SQL to BI Server.
-> BI Server will cache the result and send them back to Presentation Server.
-> Presentation Server will generate the reports, if chart is present in the report then Javahost and CORDA chart engine will be involved to serve the chart generation.
-> The final report with all the report components will be sent back to the user through the web plugin.

In case user needs report alert or schedule dispatch of reports, the BI Scheduler component will be involded. It will store the defination of the scheduled jobs (iBots) in the database tables and pool them time by time to execute automatically.

Once you finish reading this section try to do these things as hands on.
1> Start all OBI EE components from windows services. [If you are in linux environment the scripts to run OBI EE can be found under ORACLEBI_HOME/setup directory]

2> Run the application server where the OBI EE plugin "analytics" is deployed. The default is OC4J.

3> Check the OBI EE login page at http://localhost:9704/analytics/saw/dll?Dashboard and login to the default repository and webcat combination. Credentials are Administrator/Administrator.

4> View the logs files.
-> BI Server Log = NQServer.log under ORACLEBI_HOME/server/Log
-> Query Log = NQQuery.log under ORACLEBI_HOME/server/Log
-> Cluster Log = NQCluster.log under ORACLEBI_HOME/server/Log
-> Scheduler Log = NQScheduler.log under ORACLEBI_HOME/server/Log
-> Presentation Service Log = sawlog0.log under ORACLEBIDATA_HOME/web/log
-> Java Host = jhost0.log.N under ORACLEBIDATA_HOME/web/log/javahost
[Note N is the number of the log file]

Location of the configuration files
BI Server = ORACLEBI_HOME/server/Config/NQSConfig.INI
Presentation Service = ORACLEBIDATA_HOME/web/config/instanceconfig.xml
Cluster Controller =  ORACLEBI_HOME/server/Config/NQClusterConfig.INI
Java Host =  ORACLEBI_HOME/web/javahost/config/config.xml
BI Scheduler =  ORACLEBIDATA_HOME/scheduler/config/instanceconfig.xml
Section 02 : Physical Layer

OBI EE 10g / 11g - Tutorials - Introduction

Dear Friends,

If you notice, the google search engine will provide you hundreds of pages of information on tutorials of about any programming language or application tool. But finding a tutorial site dedicated to Oracle BI EE is very tough. I myself searched a lot but did not found any gude book like OBI EE in 10 days or OBI EE in a month. So I thought to prepare some pages totally dedicated to the teaching of OBI EE to the new comers.

Before you start the tutorial it is better if you can have some basic knowledge of database technologies and query language (formally known as SQL). In OBI EE, you do not need much programming, but understand of data structures and little bit modelling. The BI as everyone says is more of an art than science :)

I will start from the basics of the tool and try to add little and more complex things in future. You are always welcome to suggest me with information that I should add to the sections to make them more informative and useful to the new comers.

Thanking you all,
Somnath

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Section 01 : Basic Architecture 

Software Installation Step By Step : OBI EE 11.1.1.5.0 For Oracle Linux 5u3

OBI EE 11g has many advantages over its older 10g version. Specially if you are working on Linux platforms then the biggest advantage of this version is to have a 64 bit support rather than a 32 bit installers. This is really helpful if you have lots of memory in your server and due to 32 bit limitation you can not use them for your applications. In this document I will cover step by step installation of Oracle BI EE 11.1.1.5.0 on a 64 bit Linux server (in my case OEL).

If you follow the guide lines of Oracle then you will find that in a 64 bit Linux OS only the Software only installation is supported. That means the installation is little different than the one we get with a Enterprise installation type.

In this installation process you have to install Oracle Weblogic Server Software 10.3.5.0 onto your server with a 64 bit jdk (better use Oracle JRockit JDK). Once this is done you have to install the software. You can use XMing or other Xwindow servers to get a feed from your Linux environment to your local windows PC and complete the installtion or you can use a response file to start the installation. My this blog I will cover the installation with response file.

1. Minimum Hardware Requirement for 64 bit Linux machines
Physical Memory (RAM) = 8 GB
Swap Memory = 8 GB
Temp Memory = 2 GB
CPU Speed = 1.5 MHz
Disk Space = 30 GB

2. Create Database Schemas : 
Oracle BI 11g comes with a schema builder utility commonly known as RCU - Repository Creation Utility. As you have noticed in Oracle BI 10g or in Siebel 7.8.X versions, the tool needs a set of database tables to store data for its scheduler and usage tracking components. In the older version you will have a set of .sql files that you have to execute on the database server to generate these tables. In the new version all these tasks are automated with RCU. Now you have to specify the details of the database and an account having SYS DBA access to the database. (In case you have a user only DBA access you have to give it grant execute on sys.dbms_lock with grant option, grant execute on sys.dbms_lob with grant option and grant execute on sys.dbms_output with grant option). Select BIPLATFORM and MDS schemas for installation. If you are running the rcu utility from linux environment then the typical command will look like - "./rcu -silent -createRepository -databaseType ORACLE -connectString IP:PORT:SID -dbUser [DB User Name] -schemaPrefix POC -component MDS -tablespace [DATA Tablespace Name] -component BIPLATFORM -tablespace [DATA Tablespace Name]  -f [Full path of the password file]"

3. Create Response File :
In my case I first create the response file in my windows environment (no need to install the software just follow the steps and before the installation start save the response as response file). Then modify the response file as per your linux requirement. Now create a staticports.ini file that will be used for your installation.

4. Install Oracle Weblogic Server 10.3.5.0
Install Oracle Weblogic Server 10.3.5.0 on the machine and remember the path of the Oracle middleware home. This will be needed during the software installation of OBI EE 11g software. Domain creation is not needed. Domain will be created after the OBI EE software installation and this domain is now onwards called as BI Domain.

5. Install OBI EE Software :
Once you have reated the response file and the staticports.ini file the rest of the software installation is very easy in 11g. The installer supports both graphical and console mode. If you are using graphical mode using X-Window servers like xming, then you get same input pages as you will find in windows environment. But in case of a console based installation you have to invoke the silent installer using the following command -
"./runInstaller -silent -force -ignoreSysPrereqs -invPtrLoc /tmp/bishiphome/inst/oraInst.loc -responsefile [full path of response file] -jreLoc [full path of jdk]"

In case the installation stops with "Can't load library" error, you have to check that all the linux libraries needed for OBI EE 11.1.1.5.0 are installed on the server (use yum - list command). If they are missing, install them using yum install command and try the installation again.

6. Performance Related Changes in Linux :
Once the installation is completed make sure to set these kernel parameters to enhance the performance of the OBI EE environment. You need root access to make these changes in the server.

Set tcp_fin_timeout to 30
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout

Set tcp_max_syn_backlog to 4096 
echo "4096" > /proc/sys/net/ipv4/tcp_max_syn_backlog

Set resource hard and soft limit to 65535
Add the folloing in the file /etc/security/limits.conf
hard nofile 65535
soft nofile 65535

Blog Archive