Tag Archives: Obiee

OBIEE / AD integration – [OBI-SEC-00022] Identity found … but could not be authenticated

A quick blog post to record for future Googlers a problem I encountered today. I was configuring OBIEE 11.1.1.6 to use Microsoft Active Directory (MSAD) as an Authentication Provider, following the instruction’s in Mark’s blog post.

After completing the setup, I could see my AD users in Web Logic Console under Users and Groups but logins to analytics with an AD user failed. In the bi_server1-diagnostic.log was the entry

[OBI-SEC-00022] Identity found jbloggs but could not be authenticated

The problem was that my Principal user (let’s call it ADBusInt) was outside of the AD region which I’d identified with Base User DN. This meant that OBIEE could find the user’s AD account (jbloggs) successfully (in the specified Base User DN), but not the ADBusInt account which is required to complete authentication. 

The solution was to broaden Base User DN to include the area of the AD which hosted my Principal user too. 

Oracle Business Intelligence Enterprise Edition 11g: A Hands-On Tutorial


 The long awaited "Oracle Business Intelligence Enterprise Edition 11g: A Hands-On Tutorial" (Packt publishing) by Christian Screen, Haroun Khan and Adrian Ward was finally released two weeks ago (Amazon) and I got the hard copy delivered today (haven't tried the Kindle version yet...).

As I have been hanging around Oracle BI and its various ancestors since quite a while I was eagerly looking forward to this one - as well as Marks forthcoming book - for several reasons:
First of all it always boggled my mind as to just how someone would go about packing the OBIEE 11g "basics" into a couple of hundred pages when almost each topic on its own (WLS, security, infrastructure, RPD et.) would easily fill a complete book.
Secondly, as I split my time between projects and training I'm alway interested to see the different approaches taken to convey certain messages, teach certain topics and dispell certain sales claims.
Last but not least...I simply can't spend that much time on writing these things together (see immediately below).

First impression after a cursory glance at the table of contents and browsing some chapters: thank the heavens that someone took the time to write all of this up an give me a whooping 600+ bound pages to slap people with rather than just saying "RTFM" :-) ...especially when there wasn't really any "M" of this kinds o far.

Going end-to-end from explaining the basic architecture, through the installation, the RPD and webcat, action framework and on to OLAP/Essbase integration, the book covers all the basic subjects with a seriously nice hat-tip "Reporting Databases" in chapter 7.
That last one definitely being a chapter which made me smile since more often than not one can see people storming off to "do business intelligence" (read: draw some reports and extryct some lists) without thinking about the basics: the data and the way it is modelled. Always reminds me of a mantra in the old Siebel Analytics courses: "Model first!"

The books is clearly written with the KISS principle in mind and manages to stick to that principle very nicely. The structure's clear and proper and some of the graphs are especially funny for us old-timers as they point way back to NQuire. Links to detailled descriptions in the official Oracle documentation are provided where necessary and should never be disregarded. This being a hard-copy and OBIEE evolving at a steadily increasing pace, those can come in very handy when analysing a certain component or behaviour in a specific version of the product.

Also, the book provides good links to supporting material; including the complete database, web catalog and styles and skins used for the examples in the book. A very nice touch since this will allow anyone to reproduce things step-by-step rather than having to adapt the books content to his/her own situation or vice versa which is a huge plus for people newly hopping on to the OBIEE train.

I've kept it quite high-level since I suspect everyone is clever enough to read the detailled outline in the provided links here and since my judgement is quite simple: if you're an OBIEE starter: get it. If will help you as a go-to place or aide-mémoire for most "how did this work again?" questions.
If you're coming from 10g and looking forward to migrating to 11g: get it. It does a good job of painting the big picture, explaining the architecture, the components and how it all works together, thereby taking the edge off "the beast that is 11g" (admit it guys, it can be overwhelming).

Personally, I will definitely use it as supporting material / a hand-out for my beginners courses, bootcamps and onboarding of new team members like I do with Kimballs bible.

So kudos to Christian, Haroun and Adrian! Along with last weeks release of the new 11.1.1.6.2 BP1 Sampleapp v207 this will provide good material for the next couple of rainy days (read: me getting into troubles for hanging around work topics even at home ;-)).
Next up: Marks book. Really looking forward to that one now!

Exalytics – TimesTen and OBIEE connectivity

Two of the key components in Exalytics are OBIEE and the TimesTen in-memory database. Configuring them to work together, particularly in non-standard configurations, can be fiddly, so here is a guide on how to make sure you get it right. 

The aim

To recap, the aim of this configuration is for the BI Server to be able to access the correct TimesTen database. This is necessary for both users running reports which use data held in TimesTen, and also when you are running the Summary Advisor/Aggregate Persistence Wizard script to create aggregates.

The configuration files

There are four configuration files involved:

  • The OBI Repository (RPD)
  • odbc.ini
  • sys.odbc.ini
  • sys.ttconnect.ini

In addition, you need to be aware of opmn.xml, but of that more later

Scenario 1 – Single Exalytics node, single OBIEE/TimesTen installation

If you have a single Exalytics server and have not deviated from the supported configuration then this is what you will have. By default Exalytics will come configured with part or all of this done.

sys.odbc.ini

In TimesTen, the database is defined in a file called sys.odbc.ini. You’ll find this file in $TIMESTEN_HOME/info, for example, /u01/app/oracle/product/TimesTen/tt1122/info/.

There are two important things about this file. One is the name of the database is set. The second is that the actual database definition is held here.

[ODBC Data Sources]
TT_AGGR_STORE1=TimesTen 11.2.2 Driver

[TT_AGGR_STORE1]
Driver=/u01/app/oracle/product/TimesTen/tt1122/lib/libtten.so
DataStore=/u01/data/tt/tt_aggr_store1/data
LogDir=/u01/data/tt/tt_aggr_store1/logs
[… ]

In line 4 we set the database name, also referred to as the DSN (DataSource Name). This must also be included in the list of data sources, see line 2.

Lines 5-8 and onwards are the definition of the database – where the data is stored, how large the database is, etc.

odbc.ini

This is the configuration file used by OBIEE for holding any ODBC data source definitions. This includes the OBIEE datasource itself, AnalyticsWeb (which is connected to by ODBC). You may have entries here for SQL Server and other ODBC-connected datasources too. The file is located in $FMW_HOME/instances/instance1/bifoundation/OracleBIApplication/coreapplication/setup.

For Exalytics TimesTen, the relevant entry here will look like this:

[…]
[ODBC Data Sources]
TT_AGGR_STORE1 = TimesTen 11.2.2 Driver
[…]
[TT_AGGR_STORE1]
Driver = /u01/app/oracle/product/TimesTen/tt1122/lib/libttclient.so
TTC_SERVER_DSN = TT_AGGR_STORE1
TTC_SERVER = localhost
TTC_TIMEOUT = 0

Line 5 defines the DSN name, and must also be listed under ODBC Data Sources, see line 2.

The key thing here is that the name of the DSN defined in odbc.ini doesn’t have to match that of sys.odbc.ini..
From the DSN defined here, the DSN defined in TimesTen is referenced, as TTC_SERVER_DSN, see line 7.
The TTC_SERVER in this context is the physical hostname (eg localhost) of the Exalytics server.

The OBI Repository (RPD)

In your Exalytics RPD, the connection pool for your TimesTen database definition will have a Data source name entry. You set this to the DSN defined (i.e. the name between the square brackets) in odbc.ini.

Scenario 2 – Single Exalytics node, multiple OBIEE/TimesTen installations

If there are multiple TimesTen installations on the one Exalytics server (for example, to support dev/test/pre-prod, and/or for standalone patching and versioning) then there will be multiple TimesTen daemon/server processes on distinct ports.

In the above example “Scenario 1″, the OBIEE odbc.ini configuration relies on the TimesTen server on which the intended database exists listening on the default server port. This is because TTC_SERVER can refer to either a physical hostname of the TimesTen server, or of a TimesTen logical server definition.

If the TimesTen server process that we want to connect to is on a different port, it is necessary to use a Logical Server reference.


A logical server is configured in the sys.ttconnect.ini file:

[ttServerB]
Description=TimesTen Server
Network_Address=localhost
TCP_PORT=54397

Line 1 defines the logical server name. The Network_Address is the physical hostname, and TCP_PORT the port on which the server process is listening. Be aware of some special values that Network_Address can be set to, see the documentation for more details.

To reference the logical server, the name (in the above example, ttServerB) is referenced in the odbc.ini DSN definition:

odbc.ini

[ODBC Data Sources]
TT_AGGR_STORE1 = TimesTen 11.2.2 Driver
[…]
[TT_AGGR_STORE1]
Driver = /u01/app/oracle/product/TimesTen/tt1122/lib/libttclient.so
TTC_SERVER_DSN = TT_AGGR_STORE1
TTC_SERVER = ttServerB
TTC_TIMEOUT = 0

The OBI Repository (RPD)

In your Exalytics RPD, the connection pool for your TimesTen database definition will have a Data source name entry. You set this to the DSN defined (i.e. the name between the square brackets) in odbc.ini.

Troubleshooting

The nqserver.log will show if there are problems, even if you are not querying TimesTen. This is because OBI recognises TimesTen connection pools and automatically checks them every sixty seconds (you can configure this interval with HA_DB_PING_PERIOD_MILLISECS in NQSConfig.ini).
A couple of common errors and their causes:

  • [nQSError: 16001] ODBC error state: IM002 code: 0 message: [TimesTen][TimesTen 11.2.2.2.1 ODBC Driver]Data source name not found and no default driver specified.
    • This means that you have specified a TTC_SERVER_DSN in the OBIEE odbc.ini for which there is no corresponding DSN in TimesTen’s sys.odbc.ini
  • [nQSError: 16001] ODBC error state: IM002 code: 0 message: [TimesTen][TimesTen 11.2.2.3.0 CLIENT]Cannot find the requested DSN (TT_AGGR_STORE) in ODBCINI [...]
    • This means that your RPD is specifying a DSN which you haven’t defined in OBIEE’s odbc.ini

opmn.xml

If you are using multiple TimesTen binaries then make sure you set the correct LD_LIBRARY_PATH and TIMESTEN_DLL in the opmn.xml configuration file, which you’ll find in $FMW_HOME/instances/instance1/config/OPMN/opmn/

Documentation

Applying patches to OBIEE : 11.1.1.6.2 BP1

The recent release of OBIEE 11.1.1.6.2 BP1 weighs in with a hefty eight individual patches to apply. They use the standard Oracle opatch mechanism. Here we see how to apply the patches, and note any “gotchas”. 

Starting point

To install 11.1.1.6.2 BP1, you must be on 11.1.1.6.0 first.

This article is based on an installation on Linux (OL6), but the process should be the same across OSs. It is also based on a single-node OBIEE install. For clustered deployments, you will need to do this on each node – see the patch README for more information.

Obtain the patches

The first step is to download the patches from Oracle Support. See my previous post on how to locate them and optionally download them from the command-line using wget. Don’t forget the JDeveloper patch, 13952743, which doesn’t show up in the standard search for 11.1.1.6.2 BP1.

Unzip the patches

You can unzip them using the commandline statement

unzip \*.zip

This will give you a list of folders, each containing a set of patch files. You should have the following:

drwxrwxr-x  4 oracle oinstall 4096 Jul 10 17:10 13867143
drwxr-xr-x  4 oracle oinstall 4096 Apr 12 07:10 13952743
drwxrwxr-x  4 oracle oinstall 4096 Jun  2 03:25 13960955
drwxr-xr-x  4 oracle oinstall 4096 Jun 14 00:53 14142868
drwxr-xr-x  4 oracle oinstall 4096 Jul 10 17:20 14223977
drwxrwxr-x  4 oracle oinstall 4096 Jun 22 11:06 14226980
drwxrwxr-x  4 oracle oinstall 4096 Mar 29 03:09 14226993
drwxrwxr-x  4 oracle oinstall 4096 Apr 19 07:22 14228505

Read the README

The patches come with a master README file, in 14223977/README.txt. Make sure you read through this and understand it. What I detail below are my notes based on it, but always check the README.

Determine FMW_HOME

All OBI 11g installations follow the same directory structure, but the root of this structure varies depending on where it was installed. The root is known as FMW_HOME (Fusion MiddleWare Home), and is commonly found in locations such as

  • /u01/app/oracle/product/fmw
  • /home/oracle/obiee
  • c:\oracle\middleware

Before continuing, make sure you know where your FMW_HOME is. When you’ve found it, you should see the following structure within it:

-rw-rw----  1 oracle oinstall   225 Jul  6 13:49 domain-registry.xml
drwxr-x---  3 oracle oinstall  4096 Jul  6 13:44 instances
drwxr-x---  2 oracle oinstall  4096 Jul  6 16:41 logs
drwxr-x---  7 oracle oinstall 36864 Jul  6 13:26 modules
-rw-r-----  1 oracle oinstall   623 Jul  6 13:26 ocm.rsp
drwxr-x--- 65 oracle oinstall  4096 Jul 10 20:25 Oracle_BI1
drwxr-x--- 33 oracle oinstall  4096 Jul 10 21:38 oracle_common
-rw-r-----  1 oracle oinstall 86921 Jul  6 13:26 registry.dat
-rw-r-----  1 oracle oinstall  1750 Jul  6 13:26 registry.xml
drwxr-x---  4 oracle oinstall  4096 Jul  6 13:37 user_projects
drwxr-x---  8 oracle oinstall  4096 Jul  6 13:26 utils
drwxr-x---  9 oracle oinstall  4096 Jul  6 13:26 wlserver_10.3

For the rest of this article, I’m assuming you’ve set the environment variable FMW_HOME, for example using export FMW_HOME=/u01/app/oracle/product/fmw (on a bash shell – other shells & OSs will differ)

Put patch files in place

Move your unzipped patch files into the $FMW_HOME/Oracle_BI1 folder. It should look like this:

oracle@rnm-ol6 fmw]$ ls -l /u01/app/oracle/product/fmw/Oracle_BI1/
total 272
drwxrwxr-x  4 oracle oinstall 4096 Jul 10 17:10 13867143
drwxr-xr-x  4 oracle oinstall 4096 Apr 12 07:10 13952743
drwxrwxr-x  4 oracle oinstall 4096 Jun  2 03:25 13960955
drwxr-xr-x  4 oracle oinstall 4096 Jun 14 00:53 14142868
drwxr-xr-x  4 oracle oinstall 4096 Jul 10 17:20 14223977
drwxrwxr-x  4 oracle oinstall 4096 Jun 22 11:06 14226980
drwxrwxr-x  4 oracle oinstall 4096 Mar 29 03:09 14226993
drwxrwxr-x  4 oracle oinstall 4096 Apr 19 07:22 14228505
drwxr-x---  3 oracle oinstall 4096 Jul  6 12:53 admin
drwxr-x---  3 oracle oinstall 4096 Jul  6 12:53 asoneofftool
drwxr-x---  3 oracle oinstall 4096 Jul  6 13:08 assistants
drwxr-x---  3 oracle oinstall 4096 Jul  6 12:53 atgpf
drwxr-xr-x  3 oracle oinstall 4096 Jul 10 20:25 bicomposer
drwxr-x--- 16 oracle oinstall 4096 Jul  6 13:15 bifoundation
[…]

Check disk space

The patches copy files and take copies of files they are replacing, so you will need free disk space – from experience, around 10GB can be necessary

Backup, backup, backup

You already take backups of your OBIEE installation, right? Well, now is definitely the time to start if you don’t. Patching is a complex process, and if something goes wrong then you are at the mercy of oPatch and oraInventory.

And don’t forget, untested backups are as good as no backups.

See the Oracle® Fusion Middleware Administrator’s Guide – Introducing Backup and Recovery for more information, and specifically Backup and Recovery Recommendations for Oracle Business Intelligence

Shutdown the OBIEE processes, including WebLogic

Shutdown OPMN, the Weblogic managed server (bi_server1), and the Weblogic Admin Server.

Delete catalog manager cache directories

These may or may not exist – if they do, delete them

rm -rv $FMW_HOME/Oracle_BI1/bifoundation/web/catalogmanager/configuration/org.eclipse.osgi
rm -rv $FMW_HOME/Oracle_BI1/bifoundation/web/catalogmanager/configuration/org.eclipse.equinox.app

Set the environment variables

The patch README explains how to do this on Windows and a *nix C shell, here is how to do it on Bash shell:

cd $FMW_HOME/Oracle_BI1
export ORACLE_HOME=$PWD
export PATH=$ORACLE_HOME/bin:$PATH
export JAVA_HOME=$ORACLE_HOME/jdk
export PATH=$JAVA_HOME/bin:$PATH
export PATH=$ORACLE_HOME/OPatch:$PATH

Apply the OBI patches

Making sure that you’ve set the environment variables as shown above, apply the seven OBI patches as follows:
14223977 (1 of 7) Oracle Business Intelligence Installer

cd $FMW_HOME/Oracle_BI1/14223977
opatch apply

14226980 (2 of 7) Oracle Real Time Decisions

cd $FMW_HOME/Oracle_BI1/14226980
opatch apply

13960955 (3 of 7) Oracle Business Intelligence Publisher

cd $FMW_HOME/Oracle_BI1/13960955
opatch apply

14226993 (4 of 7) Oracle Business Intelligence ADF Components

cd $FMW_HOME/Oracle_BI1/14226993
opatch apply

14228505 (5 of 7) Enterprise Performance Management Components Installed from BI Installer 11.1.1.6.x

cd $FMW_HOME/Oracle_BI1/14228505
opatch apply

13867143 (6 of 7) Oracle Business Intelligence

cd $FMW_HOME/Oracle_BI1/13867143
opatch apply

14142868 (7 of 7) Oracle Business Intelligence Platform Client Installers and MapViewer

cd $FMW_HOME/Oracle_BI1/14142868
opatch apply

Check the OBI patches have been applied

cd $FMW_HOME/Oracle_BI1
opatch lsinventory|grep applied

You should see the seven patches just applied, plus a bunch of others from installing 11.1.1.6.0

Patch  14142868     : applied on Tue Jul 10 21:31:11 BST 2012
Patch  13867143     : applied on Tue Jul 10 20:58:29 BST 2012
Patch  14228505     : applied on Tue Jul 10 20:33:59 BST 2012
Patch  14226993     : applied on Tue Jul 10 20:25:58 BST 2012
Patch  13960955     : applied on Tue Jul 10 20:19:46 BST 2012
Patch  14226980     : applied on Tue Jul 10 20:02:40 BST 2012
Patch  14223977     : applied on Tue Jul 10 20:00:35 BST 2012
Patch  6845838      : applied on Fri Jul 06 13:33:14 BST 2012
Patch  7393921      : applied on Fri Jul 06 13:32:58 BST 2012
Patch  7707476      : applied on Fri Jul 06 13:32:46 BST 2012
Patch  7663342      : applied on Fri Jul 06 13:32:21 BST 2012
Patch  6599470      : applied on Fri Jul 06 13:32:10 BST 2012
Patch  6750400      : applied on Fri Jul 06 13:31:58 BST 2012
Patch  7427144      : applied on Fri Jul 06 13:31:23 BST 2012

Copy the client tool installers

cd $FMW_HOME/Oracle_BI1/clients/bipublisher/repository/Tools
cp BIPublisherDesktop*.exe $FMW_HOME/user_projects/domains/bifoundation_domain/config/bipublisher/repository/Tools/

Apply the JDeveloper patch

This requires a different ORACLE_HOME to be set, so make sure you don’t skip setting the environment variables here:

cd $FMW_HOME/oracle_common
export ORACLE_HOME=$PWD
export PATH=$ORACLE_HOME/bin:$PATH
export JAVA_HOME=$ORACLE_HOME/jdk
export PATH=$JAVA_HOME/bin:$PATH
export PATH=$ORACLE_HOME/OPatch:$PATH
cd $FMW_HOME/Oracle_BI1/13952743
opatch apply

Check the JDeveloper patch has been applied

cd $FMW_HOME/Oracle_BI1
opatch lsinventory|grep applied

You should see the patch just applied listed:

Patch  13952743     : applied on Tue Jul 10 21:44:19 BST 2012

Startup the OBIEE processes, including WebLogic

Start up the Weblogic Admin Server, Managed Server (bi_server1), and then OPMN.

Validate the patching has been successful

If all has gone well, you should now be able to login to OBIEE and from the Administration link see the new version listed:
11.1.1.6.2 (Build 120605.2000 BP1 64-bit)

Untitled 4
Untitled 5

Client tools

Don’t forget to update your Client Tools (Adminstration Tool, Catalog Manager, Job Manager). To do this, login to OBIEE and from the Home page go to Get Started… -> Download BI Desktop Tools -> Oracle BI Client Installer. This will download the client installer, which you should then run to install the tools.

The Admin Tool lists its version in C:\Program Files\Oracle Business Intelligence Enterprise Edition Plus Client\oraclebi\orahome\bifoundation\version.txt

Build: 11.1.1.6.0.BIFNDN_11.1.1.6.2BP1_NT_120604.0813
Release Version: Oracle Business Intelligence 11.1.1.6.0
Package: 120604.0136.000

Tidy up patch files

If you want to save disk space, you can delete the patch folders:

cd $FMW_HOME/Oracle_BI1/
rm -rf 13867143
rm -rf 13952743
rm -rf 13960955
rm -rf 14142868
rm -rf 14223977
rm -rf 14226980
rm -rf 14226993
rm -rf 14228505

Browser Cache

In the README for the patches, there is the following note that is worth being aware of:


NB: When the patchset installation is complete and the BI System is running again, end-users might experience unexpected behavior due to pre-existing browser sessions caching javascript from the earlier Oracle BI release. To avoid unnecessary support requests, ask all end-users to clear their browser cache.

This unexpected behaviour can include the display not rendering correctly – when creating a new Analysis, only the main toolbar is shown:
Untitled 6
The resolution is simple, just purge the browser cache and logout/login to OBIEE.

Another problem observed has been the dashboard tabs not displaying.

For an enterprise deployment, I would imagine this might cause a few problems as not all users will necessarily be familar with clearing browser caches, or pay attention to instructions telling them to do so.

Downloading OBIEE patches from Oracle with wget

Last week saw the release of OBI 11.1.1.6.2 BP1, and with it, some eight patches to download (seven OBIEE, plus one JDeveloper). A very useful option when downloading the patches, particularly if you are working on Linux servers with no GUI, is to download the patches with wget. This can also be good if your company has download policies that necessitate a third party downloading any external files.

The option for downloading via wget from Oracle Support is not immediately obvious, so here is how to do it, using the example of the patchset for OBI 11.1.1.6.2 BP1 : 

First, you need to get a list of all the patches you want to download. Log into My Oracle Support (Flash version or HTML version), and click on Patches & Updates

MOS

Click on Product or Family (Advanced) and enter the following criteria to find the patches for OBIEE 11.1.1.6.2 BP1: 

  • Product: Oracle Business Intelligence
  • Release: OBI EE 11.1.1.6.2BP1
  • Platform: Linux x86-64

Also make sure you tick Include all products in a family.

NewImage

Click on Search, and you should get a list of results including seven for the patchset we are interested in: 

NewImage

Click on the first patch in the list, then press Shift and click on the last patch that we want. This will select all seven patches, and display a Download button. Click this button. NewImage

In the bottom left of the File Download window, you should see a link for WGET Options

NewImage

Click on WGET Options and then on the Download .sh button in the following dialogue

NewImage

Now open the wget.sh file that was downloaded, and locate the lines for SSO_USERNAME and SSO_PASSWORD. Edit these with your My Oracle Support username and password – the username will default to the user that created the wget.sh file.

#!/bin/sh

#
# Generated 7/2/12 7:46 AM
# Start of user configurable variables
#
LANG=C
export LANG

# SSO username and password
SSO_USERNAME=larry@oracle.com
SSO_PASSWORD=password

Set the script as executable: 

chmod u+x wget.sh

and then execute it:

./wget.sh

The script will write a corresponding wget.log with the output of the session, and if all is well you should see the patch files written to the current directory. If the files don’t download, check the .log file for the cause.

Footnote

Whilst My Oracle Support only lists seven patches for 11.1.1.6.2 BP1 when you search using the method above, per Mark’s article, you also need the patch for JDeveloper, 13952743.