Friday, April 29, 2011

Renaming Dashboards in OBIEE

There are 2 ways to rename the shared dashboards.

1. Using Catalog Manager
2. From Answers admin tab.

Using Catalog Manager:

1. Log in to catalog manager and navigate on shared folders and select the Group Folder under which you have created that dashboard.
2. Navigate till you find _Portal folder under the shared folders



 3.   Select a dashboard that you want rename from the right side pane, right click and select Smart Rename (fix refs) option







4.   Here you give your desired name for the selected dashboard.
            I am renaming it to Rename Test

     5. Press Enter to submit the name to server
     6.  Now go to login to presentation service and go to dashboards. You will see that your dashboard name has been changed.

Rename dashboard from Answers admin tab:

  1. Log into presentation service with Administrator, go to Settings > Administration > Manage Presentation Catalog.
  2. It opens a window; in this window you find option Show Hidden Items. Select this check box. Now you are able to
  3. Navigate to the Shared Folders and the group folder under which you have created the dashboard.
  4. Select _Portal folder (this will only appear when you select Show Hidden Items options)
  5. It displays the list of dashboards under this folder. Now select Rename option corresponding to the dashboard that you want to rename

      6.   Here you mention the desired name and click on Update.



    7.   Now go to Dashboards and check whether name has renamed or not.







Thursday, April 28, 2011

General Properties of Connection Pool


Connection Pool is a very important repository object and we should have a good knowledge of that. Moreover, many interview questions are based out of this. Now, lets understand something more about it…




We have 3 tabs:
1)General       2)XML     3)Write Back
In the General tab,
We need to give the Name of the connection pool.
Call Interface specifies that the Siebel Analytics will be making use of this application program interface (API)  to access the Datasource. We have a list of call interfaces available based on the type of DB we are using as the data source. Like for Oracle we have OCI, ODBC etc.
 Maximum Connections tells the maximum number of users that can connect through this connection pool. The default value is 10.
Require fully qualified table names is used to have the tables names with complete details like DB.schema.table_name. When this option is selected, all requests sent from the connection pool use fully qualified names to query the underlying database.
In Data Source Name we need to give the Host String of the DB to which the queries will be routed. We need to give valid logon info for the data source else will fail to connect to the particular Data source.
If Shared Logon option is checked, then all connections to the database that use the connection pool will use the user name and password specified in the connection pool. If this option is not selected, connections through the connection pool use the database user ID and password specified in the DSN or in the Siebel user profile.
In Username & Password and password u need to specify the Username and password of the underlying DB. We can also create a variable for the Username and make changes in that when we intend to change the underlying DB.
The Enable Connection Pooling allows a single DB connection to remain open for specified time so that the future query requests could route through the same connection. It saves the overhead of opening and closing new connections and if this option is unchecked then we for each query the DB need to open a new connection.
Timeout specifies the time for which the connection to data source remains open after the request completes.  During this time the new requests make use of this connection instead of opening a new connection. If timeout value set to 0 then connection pooling is disabled.
Execute queries Asynchronously specifies that whether the data source supports asynchronous queries or not.
Execute on connect allows the Siebel Analytics Admin server to specify a command to the DB each time the connection to the DB is established. It can be any command accepted by the DB.
Parameters Supported when checked tells that that all the DB parameters mentioned in the DB features file are supported by Siebel Analytics server.
Isolation Level controls the transaction locking behavior for all statements issued by a connection.
  • Committed Read- Locks are held while the data is read to avoid dirty reads. Data can be changed before the transaction ends with that connection.
  • Dirty Read- 0 Locking. Can read uncommitted or dirty data, change values in data during read process in a transaction. Least restrictive of all types.
  • Repeatable Read- Places locks on all data used in a query so that nobody can update the data. However new rows can be inserted by other users but will be available in later reads in the current transaction.
  • Serialization- Places a range lock on data set preventing other users to insert or update the rows in data set until the transaction is complete. Most restrictive of all.

Wednesday, April 27, 2011

How to reset/change the 'Administrator' password in OBIEE, BI Publisher and BIScheduler


The steps to perform this task are below.

The example solution begins by creating a BI Publisher superuser.
 On both OBIEE and BI Publisher.
 
Start    username/password:    Administrator/Administrator
After   username/password:    Administrator/admin3

BI Publisher superuser username/password admin2/admin2

After the test it was proved that it was possible to log into OBIEE and click on the preconfigured Dashboard.

Please follow the exact steps below and create the same usernames and passwords to start off with.

1. Take a backup copy of the 
c:\OracleBI\xmlp\XMLP\Admin\Configuration\xmlp-server-config.xml file. 
2. Log into BI Publisher
3. Select Admin > Security Center > Security Configuration
4. Enable a Local Superuser called: admin2 with the password admin2  . Click <Apply>
5. Restart oc4j
6. Sign into BI Publisher as  admin2/admin2.  This should log in successfully.
7. Log into OBIEE Admintool (Online) and change the Administrator password to 'admintool'.
8. Check in and save the changes.
9. Log into OBIEE Answers as Administrator/admin3 
10. Change the 'Administrator' password under the 'Security Model' to 'admin3'. Click <Apply>
11. Restart oc4j
12. Login to BI Publisher as Administrator/admin3.   This should log in successfully.
13. Log into OBIEE Answers as Administrator/admin3
14. Click on More Products > BI Publisher
15. This should go straight through to BI Publisher without prompting for a username and password.

If the above method still fails attach your c:\OracleBI\xmlp\XMLP\Admin\Configuration\xmlp-server-config.xml file for comparison. It is expected that the encrypted password strings exactly match your environment.

** BI Scheduler password **

This password can be changed in 'schconfig' from the DOS/UNIX command line/shell.
C:\>schconfig
Copyright (c) 1997-2006 Oracle Corporation, All rights reserved

***** Delivers Configuration Menu *****
1 - Configure Scheduler

>>> Enter Choice: 1

***** Scheduler Configuration *****
1 - Database
2 - General
3 - Advanced
0 - Quit

>>> Enter Choice:


>>> Enter Choice: 2

***** Scheduler General Configuration *****
10 - Administrator Name : Administrator
11 - Administrator Password : *****
0 - Quit

>>> Enter Choice: 10, then 11

0 - Quit
0 - Quit
0 - Quit
>>>>>>>>

Quit 3 times and restart all Analytics Services (To bring them back in sync. Restarting the BI Scheduler on its own also works, but Job Manager connections may exhibit stale behaviour depending on what has been changed) .

Physical Layer Tips

After you import, set up a PK and some joins, you usually are done with the physical layer – aside from the occasional alias. But you should pay more attention to it, as it can have some unforeseen problems if you overlook the details.

Circular Joins
The first physical layer problem is Circular Joins. A circular join is where there are 2 routes to get from one table to another, going from a dimension to a fact. Aggregate tables don’t count, as they are alternate tables used and won’t cause circular joins in the SQL. A real circular join is where usually 2 dimension tables join to each other, and each dimension tables also joins to a fact. This can happen frequently with small look-up tables in a non-denormalized schema, such as a snowflake or Transactional model. 

There are three ways to fight this, and if you follow them, you will never ever encounter them. In fact, I haven’t seen a circular join in a few years. 

Import physical tables without FK joins turned on. Make the joins yourself, so there is nothing hidden that could cause problem. You should “own” your joins, not the other way around. 

Aliases are the technique one uses to eliminate circular joins. An easy example of how to use aliases is when you have a lookup table, like W_LOV_D – each version of it requires an alias, which will be joined to differently. 

With all tables & aliases, using a naming standard will guarantee that only one physical layer object will exist in one Business Model object. If you prefix every object in the physical layer with its Logical usage first (essentially making everything an alias), you will not be able to use the Customer (W_COUNTRY_D) table in the Employee logical table, as the standard would require you to use a table alias called Employee (W_COUNTRY_D). The 7.9 OOB repository has finally adopted a similar approach.

Nullable Flag
The most devious Gotcha however is the nullable flag on each column. Since many DBAs get lazy and do not set NOT NULL constraints in the database; this mis-information is consumed by the BI Server and gives it a tummy ache. Incorrect not-null settings are important to the BI server as they guide how it not only generates SQL but does internal joins as well. 

By leaving the default of Nullable set to true, just think what that is saying: it is saying that one can expect null values to appear in the column. Whenever a join on this column is needed, such as for a subtotal or a logical query that derives into multiple physical SQLs, the join syntax can be affected. When subtotalling on such a field, certain kinds of metrics that are calculated in the SQL (such as a count distinct) can cause problems. 

When subtotalling on a field in a report, this will translate into a multi-part query of the basic format: 

Select fields 

from Select (Detail Rows) DR, 

Select (SubTotal Rows) SR 

Where DR.SubTotal Field = SR.SubTotal Field 

Note that for straight additive measures, the server will do the calculation and not the SQL. 

If the field you are SubTotaling on is set to nullable, then you have the following join condition: 

nvl(DR.c1 , 88.0) = nvl(SR.c1 , 88.0) 

and nvl(DR.c1 , 99.0) = nvl(SR.c1 , 99.0) 

No that is not a typo. Although the join condition it generates is a little bizarre by being redundant, it is clear that the server is taking into consideration that the field may be null. For varchar fileds, it uses ‘q’ and ‘z’ instead of 88 and 99. (This is dangerous if you actually have those values in the field!) 

When set to Not Null, your join condition will be simply: 

D1.C1 = SR.C1 

There are two errors you can make, each the opposite of the other: 

Setting the column to null when it is really not null. This will give you the correct answer, however it will be slower than the straight join due to the non-use of indexes. 

Setting the column to not null when it is really nullable. This will result in the wrong answer, as the equi-join will remove null rows from the recordset completely. 

Thus, be very accurate about your nullable settings in the physical layer. Ideally this should be handled in the database data model before you import a table to ensure that your physical layer does not become out of synch with the actual database.

Primary Keys
When beginning with Analytics / OBI, a lot of people make the mistake of creating too many primary keys when their PK simply has multiple columns.
Normally in Data Warehousing, a dimension table has a single field to be its primary key.  However sometimes we do not have that luxury, and must use multiple fields to represent our PK.  The best example of this is a Fact table: its PK is a combination of all the FKS to the dimension.  For example, a small fact table with FKs to Product, Month and Region has a composite Primary Key of PRODUCT_KEY, MONTH_KEY, REGION_KEY.  It is one key and not three: in the Analytics Physical layer, configure one Primary key but select multiple physical columns to define the key.
As a basic rule, think of the Highlander: “There can be only one!”  There are advanced scenarios where their may be more than one, but 99% of the time, make sure every physical layer table has a single PK.

Complex Joins
Occasionally I will see complex joins where a complex join is not needed.  The vast majority of the time your joins should be straight FK joins, even if the PK of the parent table is a composite PK (see above).
Complex joins are used in the following scenarios:
Range Joins. Useful for YTD metrics or rolling metrics.  In 10.1.3.2, the need to do this has been eliminated, but your legacy config may still need them for this purpose.  An example might be: W_DAY_D.DAY_KEY <= FACTS.DAY_KEY AND W_DAY_D.DAY_KEY < FACTS.DAY_KEY + 7.  This query will bring back the last seven days of facts for the current day selected.  (Yes this looks strange, but try it out on a piece of paper to see how it works)
Data Type Conversion Joins.  This is common in non-star schema models, or poorly designed ones.  The most common example is the conversion of a date field to a YYYYMMDD format to join to a date table that has a field of the same YYYYMMDD format.  Incidentally, this is one of the reasons why you would have more than one PK of the date table – DAY_KEY and DAY_NUMBER would both be PKs if you had to do this.
Cartesian Joins.  In strange circumstances, a 1=1 join can be used.  Be extremely careful, as this is a Cartesian product, which means the same thing as no join, which in turn means all records from table 1 will be pared with all records from table 2.  I have had to use this in my current project extensively, where we have to force a dimension to work with a fact table for the sake of the UI.  When doing so, you must guarantee that only one of the dimensional values is selected in the report or prompt; otherwise your result will be substantially incorrect.
Scenarios when you should not use a complex join
1:1 Joins.  This is common when using _DX and _FX tables in the Oracle BI applications (the RMW).  A complex join frequently is over included in SQL, meaning that sometimes it is added and slows down performance even when it is not needed.  Model this with the _DX or _FX as the parent of the base _D or _F table using a regular FK join

Filtering
This is where there is a filter in the join to exclude some rows from one of the tables.  Think about a LOV table.  One could make a join to a LOV and filter out the TYPE field to just ‘Case Status Types’.  Although this will work, it is poor design and can be missed in other joins.  It is best to put the filters in the LTS Content tab for the Dimension table it is mapped to.
Best of luck with your Physical Layer.  

Tuesday, April 26, 2011

Steps to change the password of the repository

  1. Open NQSConfig.INI file
  2. Go to Security part and find AUTHENTICATION_TYPE = BYPASS_NQS;
  3. Uncomment (remove #) this part.
  4. Stop the BI Server service
  5. Close Administration Tool, if opened. (Then only the changes are affecting to the Administration Tool)
  6. Open Administration Tool, then rpd which needs password reset, in offline mode
  7. Give any password, it accepts.
  8. Now go to Manage > Security.
  9. From here it’s the normal process how you change password.
  10. Save the changes to rpd
  11. Revert back the changes in NQSConfig.INI
  12. Start BI Server and open rpd with new password.

Thursday, April 21, 2011


Oracle Business Intelligence components



Reference:  http://download.oracle.com/docs/cd/E10415_01/doc/bi.1013/b40058.pdf



The Oracle Business Intelligence components consist of:
  • Oracle Business Intelligence Presentation Services
The Oracle Business Intelligence Presentation Services provides the framework and interface for presentation of Business Intelligence data to web clients. It maintains a Presentation Catalog service on the file system for the customization of this presentation framework. It is a standalone process and integrates with the Oracle Business Intelligence Presentation Services Plug-in from which it receives web client requests. It communicates with the Oracle Business Intelligence Server using ODBC over TCP/IP.
  • Oracle Business Intelligence Server
The Oracle Business Intelligence Server is a stand-alone process that maintains the logical data model which it provides to BI Presentation Services via ODBC. Metadata is maintained for the data model in a local proprietary file called the repository file (rpd). On the back-end, the BI Server connects to customer data stores via data source adaptors.
  • Oracle Business Intelligence Scheduler
The Oracle Business Intelligence Scheduler is an extensible scheduling application for scheduling reports to be delivered to users at specified times. It is the engine behind the Oracle Business Intelligence Delivers feature.
  • Oracle Business Intelligence Publisher
The Oracle Business Intelligence Publisher generates highly-formatted, pixel-perfect enterprise reports.
  • Oracle Business Intelligence Java Host
The Oracle Business Intelligence Javahost provides services to BI Presentation Services for Charts, Gauges and PDFs. The services are provided based on request-response model.
  • Oracle Business Intelligence Presentation Services Plug-in
The Oracle Business Intelligence Presentation Services Plug-in is the entry point for web client requests to BI Presentation Services. There are two types of BI Presentation Services Plug-ins. For Oracle Business Intelligence that is serviced by J2EE application servers, the BI Presentation Services Plug-in is a Java Servlet. For Oracle Business Intelligence where the web server used is Microsoft Internet Information Services (IIS), the Oracle BI Presentation Services Plug-in is an ISAPI Plug-in.
  • Oracle Business Intelligence for Microsoft Office

    Note: The Oracle BI Presentation Services, Oracle BI Client, and Oracle BI Server components can be installed to run on separate machines