Uncategorized

 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!

Uncategorized

After an OBIEE 11.1.1.6 in-place upgrade I accidentally found weird warnings in the startup log of WebLogic since the upgrade. “By accident” since the server started nicely and was available without loss of functionality or performance, so I never checked in detail what happens during startup.

The WLSStart.log contained the following nice list:

{May 1, 2012 9:36:03 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “discussion:Response” has no key column.  It will not be collected.}
{May 1, 2012 9:36:03 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_bi_instance:essbaseServerMetrics” has no key column.  It will not be collected.}
{May 1, 2012 9:36:03 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_bi_instance:wls_app_rollup” has no key column.  It will not be collected.}
{May 1, 2012 9:36:03 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_bi_instance:wls_web_rollup” has no key column.  It will not be collected.}
{May 1, 2012 9:36:03 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_bi_instance:wls_server” has no key column.  It will not be collected.}
{May 1, 2012 9:36:03 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_bi_instance:obis_rollup” has no key column.  It will not be collected.}
{May 1, 2012 9:36:03 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_bi_instance:obips_rollup” has no key column.  It will not be collected.}
{May 1, 2012 9:36:03 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_bi_instance:obips_requests_rate” has no key column.  It will not be collected.}
{May 1, 2012 9:36:05 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “webcache:request_filter_denied_stats” has no key column.  It will not be collected.}
{May 1, 2012 9:36:05 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_oim:overall” has no key column.  It will not be collected.}
{May 1, 2012 9:36:05 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “domain_oracle_oim:jdbc” has no key column.  It will not be collected.}
{May 1, 2012 9:36:05 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_soainfra:total_faults” has no key column.  It will not be collected.}
{May 1, 2012 9:36:06 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “portaltools:Response” has no key column.  It will not be collected.}
{May 1, 2012 9:36:06 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “weblogic_j2eeserver:jvm_runtime” has no key column.  It will not be collected.}
{May 1, 2012 9:36:06 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “weblogic_j2eeserver:jvm_compilation_time” has no key column.  It will not be collected.}
{May 1, 2012 9:36:06 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “weblogic_j2eeserver:jvm_memory_usage” has no key column.  It will not be collected.}
{May 1, 2012 9:36:06 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “weblogic_j2eeserver:jvm_class_loading” has no key column.  It will not be collected.}
{May 1, 2012 9:36:06 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “weblogic_j2eeserver:jvm_threads” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “essbaseapp:appMetrics” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “domain_oracle_oaam:OAAM_Datasource” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_forms:aggr_FormsResourceUsage” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_forms:NumberOfSessions” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_forms:JVMResourceUsage” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_forms:servlet_rollup_agg” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “reports:Reports_Server_Information” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “reports:Reports_Server_Performance” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “reports:Reports_Server_Response” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “reports:Reports_Servlet_Response” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “reports:Remote_Bridge_Elements” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “analytics:Response” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “portal:portal_page_engine_response_codes_delta” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “portal:portal_page_engine_response_codes” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “portal:portal_page_engine” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “activitygraph:Response” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “essbase:serverMetrics” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_federation:protocol_profiles_rollup” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_federation:protocol_profiles_events_rollup” has no key column.  It will not be collected.}
{May 1, 2012 9:36:07 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “oracle_federation:protocol_profiles_protocol_phase_events_rollup” has no key column.  It will not be collected.}
{May 1, 2012 9:36:08 AM CEST} {Warning} {oracle.dms.collector} {BEA-000000} {Metric table “personalization:Response” has no key column.  It will not be collected.}

Browsing through MOS I found MOS document ID 1434193.1 which states: 

Cause:
This is known to be caused by a change to the Metric Service.
This does not cause any functional problem and it is expected to be fixed in the future versions. An internal bug is logged and progressed to have this addressed.

Solution:
The warnings can be ignored as it has no affect on the Reports Servers and the its functionality. 

So really good to know in case you are browsing your log files for warnings and come across this.

Cheers!

Uncategorized

Just something of note. I stumble upon this from time to time and really don’t appreciate it:

Agents being called by other Agents (i.e. agent chaining) will NOT write any execution information into S_NQ_JOB or S_NQ_INSTANCE.
So no LAST_RUNTIME_TS in S_NQ_JOB nor new line in S_NQ_INSTANCE.

Really not useful when using these tables as sources in the RPD to check and schedule execution of Agents! E.g. when did which agent run last with which result and should I run it again?

Cheers!

Uncategorized

In-place upgrade within OBIEE 11 versions (from .3 to .5 o r .6 or from .5 to .6) can be a whole lot quicker than out-of-place ones but are also more interesting in terms of potential issues arising. After two uneventful in-place upgrades from 11.1.1.5 to 11.1.1.6 I had a more challenging third upgrade with some unexpected errors.

If you look at the official upgrade guide, all went fine up to item 6: “Upgrading system components“. Executing upgradenonj2eeapp.sh, however, threw an error while re-deploying:

./upgradenonj2eeapp.sh -oracleInstance /bishiphome/Middleware/instances/myinstance/ -adminHost localhost -adminPort 7001 -adminUsername weblogic

Command failed: NonJ2EEManagement Applicationdeployment failed.


Looking into the provision.log (situated in MW_HOME/instances/myinstance/diagnostics/logs/OPMN/opmn) read as follows:

[Deployer:149163]The domain edit lock is owned by another session in non-exclusive mode – this deployment operation requires exclusive access to the edit lock and hence cannot proceed. If you are using “Automatically Aquire Lock and Activate Changes” in the console, then the lock will expire shortly so retry this operation.


I ran the upgradenonj2eeapp.sh a second time to see what it would do:

SEVERE: Command failed:
oracle.as.config.ProvisionException: Exception while unregistering the instance
    at oracle.as.config.impl.OracleASInstanceImpl.unregister(OracleASInstanceImpl.java:290)
    at oracle.as.config.impl.OracleASInstanceImpl.unregister(OracleASInstanceImpl.java:250)
    at oracle.as.config.provisioner.commands.UnregisterInstanceCommand.execute(UnregisterInstanceCommand.java:34)
    at oracle.as.config.provisioner.InstallerCmdLine.run(InstallerCmdLine.java:146)
    at oracle.as.config.provisioner.InstallerCmdLine.main(InstallerCmdLine.java:46)
Caused by: oracle.as.config.impl.SimpleProvisionException: Failed to unregister instance instance1. It does not exist on the adminserver.

So, a real no-go situation. Luckily, the OBIEE EMG already had a post which contained part of the solution. Root cause of the initial error was that there was a lock on the configuration I hadn’t seen:
“Release Configuration” removed the immediate error source. Next step was re-running upgradenonj2eeapp.sh again to see what would happen and obviously the error “Failed to unregister instance instance1. It does not exist on the adminserver.” still persisted since initially the first half of the script had run through and un-registered my instance. So off to some opmnctl commands to undo the damage.

1.) Deploy the instance again:

./opmnctl redeploy -oracleInstance /bishiphome/Middleware/instances/myinstance -adminHost localhost -adminPort 7001 -adminUsername weblogic

Command requires login to weblogic admin server (localhost):
  Username: weblogic
  Password:

Redeploying NonJ2EEManagement Application…weblogic.Deployer invoked with options:  -adminurl localhost:7001 -username weblogic -name NonJ2EEManagement -source /bishiphome/Middleware/Oracle_BI1/opmn/applications/NonJ2EEManagement.ear -redeploy -upload -noexit

Task 1 initiated: [Deployer:149026]deploy application NonJ2EEManagement [Version=11.1.1] on AdminServer.
Task 1 completed: [Deployer:149026]deploy application NonJ2EEManagement [Version=11.1.1] on AdminServer.
Target state: redeploy completed on Server AdminServer

Done
Command succeeded.


2.) Register the instance again:

./opmnctl registerinstance

Command requires login to weblogic admin server (localhost):
  Username: weblogic
  Password:

Registering instance
Command succeeded.

 After these steps, I was able to run the actual shell for the upgrade process again:

./upgradenonj2eeapp.sh -oracleInstance /bishiphome/Middleware/instances/instance1/ -adminHost localhost -adminPort 7001 -adminUsername weblogic
Unregister instance…

Command requires login to weblogic admin server (localhost):
Username: weblogic
Password:

Unregistering instance
Command succeeded.
redeploy NonJ2EEManagement.ear…

Command requires login to weblogic admin server (localhost):
Username: weblogic
Password:

Redeploying NonJ2EEManagement Application…weblogic.Deployer invoked with options:  -adminurl localhost:7001 -username weblogic -name NonJ2EEManagement -source /bishiphome/Middleware/Oracle_BI1/opmn/applications/NonJ2EEManagement.ear -redeploy -upload -noexit

Task 2 initiated: [Deployer:149026]deploy application NonJ2EEManagement [Version=11.1.1] on AdminServer.
Task 2 completed: [Deployer:149026]deploy application NonJ2EEManagement [Version=11.1.1] on AdminServer.
Target state: redeploy completed on Server AdminServer

Done
Command succeeded.
re-register instance…

Command requires login to weblogic admin server (localhost):
Username: weblogic
Password:

Registering instance
Command succeeded.
Successfully upgraded NonJ2EEManagement.ear and the registeration.

 One of those little things that can ruin your evening…

Cheers!

Uncategorized

It has been 19 months since the GA of OBIEE
11g and its third incarnation (11.1.1.6) is celebrating its one-month-birthday
today. Time to make a point on the support situation for all OBIEE 10g
implementations out there:
The last 10gR3 versions (10.1.3.4.x) will
reach the end of the Permier Support lifecycle in 4 months, July 2012.
 
The full documentation for lifetime support
of Fusion Middleware products can be found here, on the Oracle website
(last updated February 2012). The screenshot above can be found on page
13 of the pdf.
So to wrap up: the product has had more than
one and a half years to mature, Oracle provided us with two new version
since the release and with the end of premier support quickly coming up,
this is really the moment to start thinking about upgrading your 10g solutions!
Uncategorized

It’s time again. This years BI forum (#biforum) is open for registration!

All information on topics, speakers and locations can be found here:
http://www.rittmanmead.com/biforum2012/

Direct registration links for Brighton and Atlanta respectively are here:
Booking form for UK BI Forum Event (Brighton, May 8th – 11th 2012)
Booking form for US BI Forum Event (Atlanta GA, May 15th – 18th 2012)

Thanks to Mark and his crew for continuing to host this awesome event!

Uncategorized

When hooking up OBIEE 11g to an LDAP, make sure to check some factors on the LDAP side of things as well. Not all errors have to come from your configuration in WLS:

  1. LDAP users intended to replace “OracleSystemUser”, “weblogic” and “BISystemUser MUST” all reside in the same base DN that’s used to search for users in the LDAP config
  2. They also MUST all be of the same objectClass as the one referenced in the LDAP config
  3. Creating “technical users” to distinguish them from “human users” and putting them in different branches and / or storing them as different object classes (e.g. “account” or rather than “person”)

First thing you should get is an LDAP browser with which to connect to the LDAP server to check validity of the connectivity ccount (i.e. the “Principal” for LDAP connectivity) as well as structures and object types. This will save you a lot of pain and suprising behaviour due to “ceative” LDAP management.

Cheers!

Uncategorized

Yes, I have quite a backlog of topics I should blog and thanks to Robin for pointing it out.

A quick reminder about using the right wlst.sh.

In a normal OBIEE installation, you will find multiple wlst.sh in the MIDDLEWARE_HOME:

    ./wlserver_10.3/common/bin/wlst.sh
    ./Oracle_BI1/common/bin/wlst.sh
    ./oracle_common/common/bin/wlst.sh

Make sure to always start your wlst scripts from

    ./oracle_common/common/bin/wlst.sh
   
in order to prevent erroneous behaviour. Running them from a different location will yield interesting errors like the one below – taken from a migrateSecurityStore example:

    TypeError: cannot concatenate ‘str’ and ‘NoneType’ objects

Cheers!

Uncategorized

OBIEE 11.1.1.6 became available yesterday evening (CET) first on edelivery and in the meantime on OTN as well. Here’s a link library of the most important and interesting sources.

Downloads:
OTN
edelivery

Overview and explanatory blog posts:

PeakIndicators
“New Features with OBIEE 11.1.1.6”

RittmanMead
“OBIEE 11.1.1.6 Now Available for Download – Release Highlights”
“OBIEE 11.1.1.6 : MDS XML Repositories, and Integration with Source Control”

Michael Verzijl
“OBIEE 11.1.1.6 Released – Short overview”

Addidici
“OBIEE 11g R1.6 New Admin Feature”

Alex Hansal
“OBIEE 11.1.1.6 is here”

Fiston
“OBIEE 11.1.1.6 new features/enhancements”

Official Documentation

Maintenance Release Guide (List of Bugs Fixed) for Oracle Business Intelligence Enterprise Edition (OBIEE) 11.1.1.6.0 [ID 1412748.1]

Documentation Library
New Features OBIEE 11.1.1.6
New Features OBIEE 11.1.1.6 for Users
(h/t @lex!)

This is just a first list and will grow over time. If you have new, interesting links to add, please put them in the comments and I’ll update the list.

Cheers!