OBIEE 11g ( 11.1.1.7) support with IE11- XML hack


We know that by now I am writing this blog OBIEE 11.1.1.7 already supported with IE11 (compatibility mode). When I am talking about 11.1.1.7 it is very specific to latest bundle patch version (anything released after 11.1.1.7.140415 (Build 140402.1431 64-bit)

This could be older post but might be helpful who are still with 11.1.1.7 (recognized as most stable so far) and had older patch of 140415 .We are running on 140415 and without IE 11 support . We are in product company having global presence across world. So for us it is not luxury rather a very necessary to think of how we can get support with IE 11 as we can’y say our customer to use different Browser version and they could have enterprise restriction and in our case several customers have Integration of BI dashboard pages in their own application under iFrame. So it is kind of enterprise wide challenge. Also we can’t release part of application in 11g for some users and rest in 10g. It is again maintenance and communication overhead.

I read that IE11 support is not in Oracle Certification matrix and Oracle said they stopped releasing back-port patch only for IE11 with 11.1.1.7.140415. So responsibility is due on us (BI team) how can we can system hack to get this compatibility with less changes in client side.
I took the challenge to find some tweaks to get this system hack. See how in step by step I approached to solution/fix/hack.

What I see if you open OBIEE .7 version in IE11 you will get Presentation service error in browser saying the browser version not supported . If you add that URL in compatibility mode IE11 will save this as URL request come with domain name and save in that list. And immediately you can see IE11 no more complaining about it . But its not end of story . After login you will find several things are broken like Links , Navigation , View selector , Prompts doesn’t work properly .

If you want to see the issue you can put below string in IE11 URL header . This will tell what kind of compatibility your browser is using. For IE11 you can clearly see no “compatible” header will return in User Agent string .

javascript:alert(navigator.userAgent) – below is example from IE 10 browser .

Browser

The reason behind it is IE11 run the browser in default Document Mode as (Edge) . If you click F12 Developers tool in IE11 you will see Emulation tab . And here you will find Document Mode and User Agent .

Compatibility will not tweak on Document mode . So the challenge is, you have to pass the string related to Browser compatibility which will override client browser settings and forced into Emulation mode you specified.

I start reading how Browser works with this compatibility and what kind of X-UA string responsible to do the browser tweak.

I found a tiny OBIEE config file pass this Emulation string with application URL called iecommon.xml file .

You can find this under : <MiddleWare_Home>/Oracle_BI1/bifoundation/web/display/featuretables/iecommon.xml

Only things is you have to change below lines. See 100 was by default , you have to change it IE=10.

After making this change you need to bounce BI System components.

<feature name=”requiredMetaTags” xsi:type=”xsd:string”>&lt;meta http-equiv=”X-UA-Compatible” content=”IE=100″ &gt;</feature>

Simple huh ? Just removing one zero (0) . Now  paste  “javascript:alert(navigator.userAgent)” (without double quotes) in IE URL header now and you can see the strings returned as IE 10 compatible. Means it did the job  !

Now if you presss F12 in IE11 and go to Emulation tab you will find Document header has been forced to change IE 10(default) and its no more Edge. So as soon as you hit OBIEE .7 URL in IE11 the server side parameter will forced them to run in Document mode IE10 .

Now try pulling your IE 11 reports (Note that we still need browser based compatibility settings and that is one time so should be fine for users) and you can clearly see the difference. No issues with Prompts, Navigation , Action link , Drill down , View selector , Alerts , Answers . Its voila ….

This steps is not declared officially and Oracle never said this works but its a system hack/tweak which perfectly work for us. So please use it on own risk.

Enjoy …till next time :)

OBIEE 11g Services Start-up Guide for Unix Platform


Below are the step by step guide to do clean start-up and shut-down of OBIEE 11g services. As we all know 11g is beast compared to its ancestor so we need to be careful doing the things in the right way.

Here I have demonstrated the steps how to do that in Linux/Unix platform and the idea is to kick-off below commands from the user having admin roles and in my case dba groups .This user is same I have used to do installation. If you have any other local user better to avoid it for services start-up as this could cause several locks into Java OPSS security files and will be causing problem to start Admin and Managed server of weblogic in bootstrap process.

In below steps I am running all the processes in nohup mode in background of unix session so that it will continue to run even if you have exit from the current running session.

1) Start-up Admin Server:

[orabi@obiappl11g-xxx ~]$ nohup sh /u00/app/MiddlewareHome/user_projects/domains/bifoundation_domain/bin/startWebLogic.sh -Dweblogic.management.username=weblogic -Dweblogic.management.password=xxx > wls_start.log &

Find the below lines in log files which will make sure clear start of Admin Server.
<Apr 28, 2014 10:05:56 PM CDT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
<Apr 28, 2014 10:05:56 PM CDT> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>

2)  Start-up Node Manager:

[orabi@obiappl11g-xxx ~]$ nohup sh /u00/app/MiddlewareHome/wlserver_10.3/server/bin/startNodeManager.sh > nodem_start.log &

Find the below lines in log files to confirm start-up:

<Apr 28, 2014 10:07:03 PM> <INFO> <Secure socket listener started on port 9556>
Apr 28, 2014 10:07:03 PM weblogic.nodemanager.server.SSLListener run
INFO: Secure socket listener started on port 9556

3) Start-up Managed Server:

[orabi@obiappl11g-xxx ~]$ nohup sh /u00/app/MiddlewareHome/user_projects/domains/bifoundation_domain/bin/startManagedWebLogic.sh bi_server1 http://obiappl11g-xxx:7001 > start_bi_server1.log &

Look for below lines in log files to confirm Managed Server start-up:

WebLogic Managed Server “bi_server1” for domain “bifoundation_domain” running in Production Mode>
<Apr 28, 2014 10:53:14 PM CDT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
<Apr 28, 2014 10:53:14 PM CDT> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>

Note: In above steps http://obiappl11g-xxx:7001 is my Admin URL where  obiappl11g-xxx is server name.

Make sure you have added WLS_USER and WLS_PWD in below file before start-up so you don’t need to pass that in command line parameters:

/u00/app/MiddlewareHome/user_projects/domains/bifoundation_domain/bin/startManagedWebLogic.sh

You can start-up this from WLS Console or Fusion Middleware Control also.

4) Start OPMN managed services:

[orabi@obiappl11g-xxx ~]$ /u00/app/MiddlewareHome/instances/instance1/bin/opmnctl startall

enter and wait until command prompt comeback

Check the status:

[orabi@obiappl11g-xxx ~]$ /u00/app/MiddlewareHome/instances/instance1/bin/opmnctl status

It should be look like this:

Processes in Instance: instance1
———————————+——————–+———+———
ias-component                    | process-type       |     pid | status
———————————+——————–+———+———
coreapplication_obiccs1          | OracleBIClusterCo~ |    5467 | Alive
coreapplication_obisch1          | OracleBIScheduler~ |    5801 | Alive
coreapplication_obijh1           | OracleBIJavaHostC~ |    5465 | Alive
coreapplication_obips1           | OracleBIPresentat~ |    5463 | Alive
coreapplication_obis1            | OracleBIServerCom~ |    5464 | Alive

Now Voila…. After all services started up in good health :)

11g

 

Note: You can see background processes from top -u serid> command:

[orabi@obiappl11g-xxx ~]$ top -u orabi

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 5065 orabi     20   0 5983m 1.1g  42m S  1.0  2.3   2:20.89 java
 7117 orabi     20   0 19452 1352  948 R  0.7  0.0   0:00.19 top
 2643 orabi     20   0 6100m 1.2g  48m S  0.3  2.6   3:01.12 java
 2841 orabi     20   0 2095m 129m  19m S  0.3  0.3   0:05.34 java
 5464 orabi     20   0 4538m 121m  47m S  0.3  0.3   0:04.26 nqsserver
 5465 orabi     20   0 3980m 232m  16m S  0.3  0.5   0:07.90 java
 2448 orabi     20   0  105m 1936 1492 S  0.0  0.0   0:00.24 bash
 2578 orabi     20   0  103m 1432 1120 S  0.0  0.0   0:00.03 sh
 2809 orabi     20   0  103m 1364 1108 S  0.0  0.0   0:00.01 sh
 5011 orabi     20   0  103m 1264 1092 S  0.0  0.0   0:00.00 sh
 5012 orabi     20   0  103m 1436 1120 S  0.0  0.0   0:00.02 startWebLogic.s
 5440 orabi     20   0 68328 8424 5900 S  0.0  0.0   0:00.00 opmn
 5441 orabi     20   0 1757m  17m  10m S  0.0  0.0   0:06.68 opmn
 5463 orabi     20   0 4172m 271m  72m S  0.0  0.6   0:03.49 sawserver
 5467 orabi     20   0 1481m  24m  15m S  0.0  0.1   0:00.70 nqsclustercontr
 5801 orabi     20   0 1909m  78m  51m S  0.0  0.2   0:01.66 nqscheduler

or else you can see them from running job list:

[orabi@obiappl11g-xxx ~]$ jobs
[1]   Running                 nohup sh /u00/app/MiddlewareHome/user_projects/domains/bifoundation_domain/bin/startWebLogic.sh -Dweblogic.management.username=weblogic -Dweblogic.management.password=xxx> wls_start.log &
[2]-  Running                 nohup sh /u00/app/MiddlewareHome/wlserver_10.3/server/bin/startNodeManager.sh > nodem_start.log &
[3]+  Running                 nohup sh /u00/app/MiddlewareHome/user_projects/domains/bifoundation_domain/bin/startManagedWebLogic.sh bi_server1 http://obiappl11g-t1.gain.tcprod.local:7001 > start_bi_server1.log &

Make sure you follow the same rule during shutdown…

Leave it for you guys to explore how to do that ;) :P

2012 in review – My Blog …Wish you all Happy New Year !


The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog.

Here’s an excerpt:

About 55,000 tourists visit Liechtenstein every year. This blog was viewed about 210,000 times in 2012. If it were Liechtenstein, it would take about 4 years for that many people to see it. Your blog had more visits than a small country in Europe!

Click here to see the complete report.

Fixing Pivoted Graph Conditional Formatting – OBIEE 11g


OBIEE 11g upgrade has a lot of issues and among couple of them common is on Conditional Formatting . This emphasis that even if the Catalog upgrade is successful there are some of the problem still persists in XML conversion engine of the Upgrade Assistant(UA) leading though several catalog defects due to malformed XML . This is another example as my upgraded 11g charts failing to show its conditional formatting which is was working perfectly in 10g ….

Lets deep dive on whats the issue …

Below is the conditional format definition in 11g which is aligned with 10g:

So ideally it should show Chart bars (which is generated from Combined request Pivoted Graph) and see the below comparison:

To understand the reason of why 11g chart not showing the conditional format I went through the full XML from Advanced tab of 11g and find the below discrepancies:

This is malformed XML generated by UA during the upgrade of 10g code .If we look into 10g Advanced XML this is actually decimal but for some reason UA failed to put correct literal against it .

So the fix is replace all the instances of string “untypedLiteral” with “decimal’ like below:

Now after applying the XML the 11g chart output like :

And voila …. the problem is fixed … There could be another workaround to copy your 10g entire XML to 11g and yes it should work     :) :)

Enjoy ..till next time…

D

Fixing the BAD XML Instance Issue – OBIEE 11g


“The current xml is invalid with the following errors: Bad xml instance!” is very unusual error but when this has been encountered it is become frustrating as it sounds the entire report can’t be saved !

I remember last time I had faced the similar issue in 11.1.1.3 version while I was building a new report from scratch . The error enforced me not to even edit the reports so I neither I can move to criteria nor I can save this . That was weird !  The only option left was to edit the XML using Catalog manager but until and unless you know where the problem lies you can’t fix it right ?

Now recently I got similar kind of issue in one of our upgraded 11.1.1.6 report which is a Combined request report and when I tried to edit the Criteria Analysis properties Interaction tab to remove Sort column of un-check any other options it throws me below error during the save:

Okay … so the error was at the very last line of the displayed XML as below:

Line:814, Col:61, Element ‘criteria’ is not valid for content model: ‘((criteria,interactionOptions,views,prompts,listOptions),segmentOptions)’

so the bug is around the green circled tags !! Reason is whenever you un-check some options under “Analysis-Properties” it will throw errors !! Probably this is some problem with the up-graded code in 11g from 10g as I tried to replicate the same creating a new reports from scratch which was pretty cool and removing any interaction works perfectly okay in the dashboard report .

After spending some times the reason of the issue found with the fix . I have customized the location for the below tag from Advanced XML :

<saw:interactionOptions drill=”true” movecolumns=”true” sortcolumns=”false” addremovevalues=”true” groupoperations=”true” calcitemoperations=”true” showhidesubtotal=”true” showhiderunningsum=”true” inclexclcolumns=”true”/>

Edited the XML and moved it from beforesection to the end of all. As it is combined request hence several would be present but placed it after all of them.

 After that apply the changes in Advanced XML and voila …. your problem fixed !  Note that this could be the one of incident with BAD XML error and probably you can found it in several other places with no relation to my above fix note . This those cases you need to dig down into more details of the Advanced XML generated and fix those issues as applicable for your case .

Bottom line is same . Dig into the XML details to find out the crappy code and the fix it ! …

So that’s it …. till next time… Happy weekend :)

 

OBIEE 11g/10g Column Header Freeze


I thought to post this thread long time back during 11.1.1.3 version but just waited for 11g new release .5 and upcoming edition assuming Oracle might include this demanding features soon and still surprised there is no OOB feature included while we are in .6 now.

I know the couple of fellow bloggers already tried that and everybody could have different approach . So lets put what I had experimented in last year in .3 release which is still valid in .6 . And this approach and implementation still valid in 10g.

Its simple to have column header freeze adding some scripting with embedded content . I took a simple dimension and simple fact to create one Tabular report and one Pivot report in two different tab where I have applied same logic but just want to show that the feature still feasible in both view.

So lets see how it will look like after Tabular column freeze (I would rather say it is kind of floating column header attributes)

Now I have scrolled at the right pane and watch the year attributes.  Now you can see that the column header retains.

Now see the implementation:

I have added Text and Embedded content in the dashboard page:

The text properties(HTML Markup checked): I can’t put it like text for your copy paste as the tag is restricted to use in wordpress and sorry for that :( Hence click on the image to get the detail view.

Embedded Content URL: 

https://bi.dev.com/analytics/saw.dll?Go&path=%2Fusers%2Fpdebashi%2FTest-Column_Header_Freeze

So I have created a simple tabular report with the above columns and saved it under my folder and referred that in the URL .

That’s it and you are done …

Now if you try to implement the same, you will see some alignment issue and in that case you need to adjust the Width and height and other parameters of HTML content to get the cropped column list  . Note that in above implementation I just remove my title view from report .

Though the above design has a lot of other restrictions (Downloading , Column sort ) but there could be possible workaround for that. At-least you can get something which is better than nothing. :D

Similar way I did it in Pivot view :

In this case my Embedded URL is different: (note the Viewname param at the end which only pull the compoundView2 which is my pivot table)

https://bi.dev.com/analytics/saw.dll?Go&path=%2Fusers%2Fpdebashi%2FTest-Column_Header_Freeze&Action=Navigate&Viewname=compoundView!2

Refer this same URL  under the HTML content defined in above image as Text HTML Markup properties.

Let the soul of the above approach rest in peace once Oracle implements this as OOB functionality in upcoming releases !!!  :) 

And we expect this to be sooner than later …. Catch you again ..till then ….