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)
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:
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
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.
Click on Search, and you should get a list of results including seven for the patchset we are interested in:
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.
In the bottom left of the File Download window, you should see a link for WGET Options.
Click on WGET Options and then on the Download .sh button in the following dialogue
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.