Sunday, January 31, 2010

OBIEE Reset OC4J Admin password

Didn’t I read about this in several other blogs you might ask. Well you are right there. It probably started with the guys from carpe diem: http://carpediemconsulting.wordpress.com/2008/03/16/resetting-the-oc4j-password-in-obiee/ And since all the others copied there article from them nobody noticed they didn’t clear the security cache. Here is the version from the original documentation:

Stop OC4J and the Application Server Control.
Enter the following command in the Oracle home of the application server instance:
(UNIX) ORACLE_HOME/opmn/bin/opmnctl stopproc ias-component=OC4J
(Windows) ORACLE_HOME\opmn\bin\opmnctl stopproc ias-component=OC4J Locate and open the following file in a text editor:
(UNIX)ORACLE_HOME/j2ee/home/config/system-jazn-data.xml
(Windows)ORACLE_HOME\j2ee\home\config\system-jazn-data.xml

Locate the line that defines the credentials property for the oc4jadmin user.
The following example shows the section of system-jazn-data.xml with the encrypted credentials entry in boldface type:


<jazn-realm>
<realm>
<name>jazn.com</name>
<users>
.
.
.
<user>
<name>oc4jadmin</name>
<display-name>OC4J Administrator</display-name>
<description>OC4J Administrator</description>
<credentials>{903}4L50lHJWIFGwLgHXTub7eYK9e0AnWLUH</credentials>
</user>

Replace the existing encrypted password with the new password.

Be sure to prefix the password with an exclamation point (!). For example:
<credentials>!mynewpassword123</credentials>

The password for the oc4jadmin user should conform to following guidelines:

  • Must contain at least five characters, but not more than 30 characters.
  • Must begin with an alphabetic character. It cannot begin with a number, the underscore (_), the dollar sign ($), or the number sign (#).
  • At least one of the characters must be a number.
  • Can contain only the following characters; numbers, letters, and the following special characters: US dollar sign ($), number sign (#), or underscore (_).
  • Cannot contain any Oracle reserved words, such as VARCHAR.

Delete cached password data by deleting the contents of the following directory:


(UNIX) : ORACLE_HOME/j2ee/oc4jinstance/persistence/ascontrol/ascontrol/securestore/
(Windows): ORACLE_HOME\j2ee\oc4jinstance\persistence\ascontrol\ascontrol\securestore/


Start OC4J and the Application Server Control.

After the restart, the Application Server Control will use your new Administrator (oc4jadmin) password, which will be stored in encrypted format within the system-jazn-data.xml file.

By the way is you have installed OC4J on a windows box it’s much easier to retrieve the password. Goto START > Oracle Business Intelligence :



image 
Rightclick on Stop OC4J, goto properties, open the shortcut tab:


image 

The password is right there ;-)

Till Next Time

This article is also published on http://knowledge.ciber.nl

Saturday, January 30, 2010

OBIEE Horizontal Pivot Sections Part 2

Based on this post: http://obiee101.blogspot.com/2010/01/obiee-horizontal-pivot-sections.html I was asked if this was possible:

image

Or a “carriage return” every x columns. So extra lines to Joe’s code fixed it:

    <script type="text/javascript">
    /* based orignal code by Joe Betram
    /* see:http://forums.oracle.com/forums/thread.jspa?threadID=1009297&tstart=0
    /* This Version John Minkjan :http://www.obiee101.blogspot.com/
    /* Thanks to Nandoo for noticing the IE bug
    */
    /* Set the number of columns */
    var intColumnNumbers = 5;

    function insertAfter( referenceNode, newNode )
    {
        referenceNode.parentNode.insertBefore(newNode, referenceNode.previousSibling);
    }
    var debug =1;
    var sectioncnt =0;
    var x =0;

    if (debug === 1) { document.write("Get all tables"+"<BR>");}
    var tables = document.getElementsByTagName('table');

    if (debug === 1) { document.write("Loop over the tables"+"<BR>");}
    for(var table=0; table < tables.length; table++){

    if(tables[table].className != 'PTSectsTable' ){
    continue;
    }

    if (debug === 1) { document.write("Found a pivot table"+"<BR>");}

    var tbody = tables[table].getElementsByTagName('tbody')[0];
    if (debug === 1) { document.write("Grabbed the tbody code"+"<BR>");}

    var trs = tbody.getElementsByTagName('tr');

    var new_tr = document.createElement('tr');
    var nw_tr =new Array();
    nw_tr[x] = document.createElement('tr');
    if (debug === 1) { document.write("Created the new_tr variable"+"<BR>");}

    while( trs.length > 0){

    var new_td = document.createElement('td');
    if (debug === 1) { document.write("Created a new TD element."+"<BR>");}

    var new_table = document.createElement('table');
    if (debug === 1) { document.write("Created a new table element."+"<BR>");}

    var new_tbody = document.createElement('tbody');
    if (debug === 1) { document.write("Created a new tbody element."+"<BR>");}

    new_tbody.appendChild(trs[0]);
    if (debug === 1) { document.write("Appended Section."+"<BR>");}

    new_tbody.appendChild(trs[0]);
    if (debug === 1) { document.write("Appended Data."+"<BR>");}

    new_table.appendChild(new_tbody);
    if (debug === 1) { document.write("Appended tbody to the table tag."+"<BR>");}

    new_td.appendChild(new_table);
    if (debug === 1) { document.write("Appended table to the TD tag."+"<BR>");}

    new_tr.appendChild(new_td);
    if (debug === 1) { document.write("Appended td to the overall TR tag."+"<BR>");}
    /*nw_tr[0].appendChild(new_td);*/
    sectioncnt = sectioncnt +1;
    if (debug === 1) { document.write(sectioncnt%intColumnNumbers+"<BR>");}

    if (sectioncnt%intColumnNumbers ===0){        
        nw_tr[x]=new_tr;
        var new_tr = document.createElement('tr');
        x =x+1;
    };
    }
    var y=0;
    for (y=0; y<nw_tr.length; y++)
    {
        tbody.appendChild(nw_tr[y]);
    }
    tbody.appendChild(new_tr);
    if (debug === 1) { document.write("Inserted the new_tr variable as the first child of tbody"+"<BR>");}
    }

    if (debug === 1) { document.write("Finished transposePivotTable"+"<BR>");}

    </script>

Till Next Time

Thursday, January 28, 2010

OBIEE Performance tuning

Lately I get a lot of OBIEE “performance” tuning questions.

FI: Our client is downloading a report with 4 million rows and the server get’s very slow our even crashes……….

Or: Out client has a report with 2 million rows and 20 columns with a sort option on each column…….

First: I said it before and will say it again and again…..

OBIEE is not an ETL tool. It is NOT designed to handle large amounts of non aggregated data. It’s designed to handle dimensional structured data with sufficient aggregation tables.

So please please stop hammering in nails with an plush screwdriver!

image

Of course there are some tuning possibilities you might want to explore.

WORK_DIRECTORY_PATHS

From the OBIEE documentation:

Specifies one or more directories for temporary space.
Each directory listed needs to be an existing fully-qualified, writable directory pathname, with double quotes ( " ) surrounding the pathname. Specify mapped directories only. UNC path names and network mapped drives are allowed only if the service runs under a qualified user account. To change the account under which the service is running, see the corresponding topic in the Oracle Business Intelligence Enterprise Edition Deployment Guide.
Specify multiple directories with a comma separated list. Valid values are any fully qualified pathname to an existing, writable directory.
For optimum performance, temporary directories should reside on high performance storage devices.
If you specify more than one directory, they should reside on different drives.
Syntax: WORK_DIRECTORY_PATHS = "<full_directory_path_1>" [,"<full_directory_path_2>"{, "<full_directory_path_n>"}] ;


Example 1: WORK_DIRECTORY_PATHS = "C:\Temp" ;
Example 2: WORK_DIRECTORY_PATHS = "D:\temp", "F:\temp" ;


NOTE: Specifying more than one directory per drive does not improve performance because file I/O takes place through the same I/O controller. In general, specify only one directory per disk drive.
Specifying multiple directories on different drives improves the overall I/O throughput of the Oracle Business Intelligence Server because internally, the processing files are allocated using a roundrobin algorithm that balances the I/O load across the given disk drives.

Rule of thumb: Invest in fast drives, consider virtual / RAM drives.

SORT_MEMORY_SIZE

From the OBIEE documentation:

Specifies the maximum amount of memory to be used for each sort operation. Multiple operations can each use memory up to the value specified. The limit for SORT_MEMORY_SIZE is determined by the physical memory of the server machine and on the number of sort operations that might occur simultaneously. Specify KB for kilobytes, MB for megabytes, and no units for bytes.
Example: SORT_MEMORY_SIZE = 4 MB ;

The size specified by SORT_MEMORY_SIZE sets the upper limit on how large the sorting buffer can be in the Oracle Business Intelligence Server. When this limit is exceeded, data is sorted in allotments of the size set by SORT_MEMORY_SIZE and the sorted sets are merged together. For example, suppose SORT_MEMORY_SIZE is set to 4 MB and the size of the data to be sorted is 32 MB. The server performs the sort once per each 4 MB of data, for a total of eight sort operations,
and then merge the results into a single result set. This technique allows the Oracle Business Intelligence Server to sort data of indefinite size.
The merge process itself is generally not costly in terms of resources, but it does include a read and write of each result set in a temporary file. To reduce the time this takes, increase the SORT_MEMORY_SIZE. This parameter can be tuned over time by taking into consideration the data size of the query and the number of concurrent users.

Rule of thumb: Don’t go overboard with this value, 10mb for a hundred concurrent users is 1 Gb of server memory. Don’t let OBIEE push other processes into the swap memory of the OS.

 

SORT_BUFFER_INCREMENT_SIZE

From the documentation:

Specifies the increment that the sort memory size is increased by as more memory is needed. As more memory is required, the size increases by the value specified until it reaches the value of
SORT_MEMORY_SIZE.
Example: SORT_BUFFER_INCREMENT_SIZE = 256 KB ;

This parameter defines the increment by which SORT_MEMORY_SIZE should be reached. For example, suppose SORT_MEMORY_SIZE is set to 4 MB and the data to be sorted is just one megabyte. As data is fed into the sort routine, the size of the sort buffer increases only by the increment size, rather than the full size allowed by SORT_MEMORY_SIZE. This mechanism allows the Oracle Business Intelligence Server to sort smaller result sets efficiently without wasting memory.

Rule of thumb: 5 – 10 % of the SORT_MEMORY_SIZE

 

VIRTUAL_TABLE_PAGE_SIZE

From the documentation:

Several operations—sort, join, union and database fetch—can require memory resources beyond those available to the Oracle Business Intelligence Server. To manage this condition, the server uses a virtual table management mechanism that provides a buffering scheme for processing these operations. When the amount of data exceeds the VIRTUAL_TABLE_PAGE_SIZE, the remaining data is buffered in a temporary file and placed in the virtual table as processing
continues. This mechanism supports dynamic memory sizes and ensures that any row can be obtained dynamically for processing queries.
When VIRTUAL_TABLE_PAGE_SIZE is increased, I/O operations are reduced. Complex queries may use 20 to 30 virtual tables, while simple queries may not even require virtual tables. The
default size of 128 KB is a reasonable size when one considers that the size for virtual paging in Windows NT is 64 KB. This parameter can be tuned depending on the number of concurrent users and the average query complexity. In general, setting the size higher than 256 KB does not yield a corresponding increase in throughput due to the 64 KB size limit of Windows NT system buffers, as each I/O still goes through the system buffers

Rule of thumb: Trust the documentation, more then 256 KB is not necessary.

All the parameters are set in the NQSConfig.INI File

Till Next Time

Wednesday, January 27, 2010

OBIEE Party 2000 page views

Yesterday we passed for the first time the 2.000 page views a day mark!

image

Thanks Everybody

Till Next Time

Monday, January 25, 2010

OBIEE Google Charts part 3 QR Codes

Ever seen these:

image

They are QR Codes: http://en.wikipedia.org/wiki/QR_Code. Most modern mobiles have a small application on board which can read the information. Because of the build in error correction they are ideal for stuff like address labels.

With google chart you can easily integrated them in an OBIEE report. Say you want to code http://obiee101.blogspot.com/

add the formula:

'http://chart.apis.google.com/chart?chs=150x150&cht=qr&chl=http://obiee101.blogspot.com/&choe=UTF-8'

Set the column type to image URL:

image

More info: http://code.google.com/intl/nl/apis/chart/types.html#qrcodes

Till Next Time

This article is also published on http://knowledge.ciber.nl

Friday, January 22, 2010

OBIEE Horizontal Pivot Sections

From this: image to this:

image

Java script master Joe Betram showed us the way: http://forums.oracle.com/forums/thread.jspa?threadID=1009297&tstart=0 

Simple add a static text to your report:

image

Add Joe’s code:

<script type="text/javascript">
/* orignal code by Joe Betram
/* see:http:/*forums.oracle.com/forums/thread.jspa?threadID=1009297&tstart=0
*/
var debug =0;

if (debug === 1) { document.write("Get all tables"+"<BR>");}
var tables = document.getElementsByTagName('table');

if (debug === 1) { document.write("Loop over the tables"+"<BR>");}
for(var table=0; table < tables.length; table++){

if(tables[table].className != 'PTSectsTable' ){

continue;
}

if (debug === 1) { document.write("Found a pivot table"+"<BR>");}

var tbody = tables[table].getElementsByTagName('tbody')[0];
if (debug === 1) { document.write("Grabbed the tbody code"+"<BR>");}

var trs = tbody.getElementsByTagName('tr');

var new_tr = document.createElement('tr');
if (debug === 1) { document.write("Created the new_tr variable"+"<BR>");}

while( trs.length > 0){

var new_td = document.createElement('td');
if (debug === 1) { document.write("Created a new TD element."+"<BR>");}

var new_table = document.createElement('table');
if (debug === 1) { document.write("Created a new table element."+"<BR>");}

var new_tbody = document.createElement('tbody');
if (debug === 1) { document.write("Created a new tbody element."+"<BR>");}

new_tbody.appendChild(trs[0]);
if (debug === 1) { document.write("Appended Section."+"<BR>");}

new_tbody.appendChild(trs[0]);
if (debug === 1) { document.write("Appended Data."+"<BR>");}

new_table.appendChild(new_tbody);
if (debug === 1) { document.write("Appended tbody to the table tag."+"<BR>");}

new_td.appendChild(new_table);
if (debug === 1) { document.write("Appended table to the TD tag."+"<BR>");}

new_tr.appendChild(new_td);
if (debug === 1) { document.write("Appended td to the overall TR tag."+"<BR>");}
}

tbody.appendChild(new_tr);
if (debug === 1) { document.write("Inserted the new_tr variable as the first child of tbody"+"<BR>");}
}

if (debug === 1) { document.write("Finished transposePivotTable"+"<BR>");}

</script>

Don’t forget to press the SET XML button before you save it!

 

Till Next Time

Wednesday, January 20, 2010

OBIEE Oracle support

Sometimes you have to contact oracle support (https://support.oracle.com/CSP/ui/flash.html) from a machine where no flash player is / can be installed. You probably get stuck in the login screen. Try this address instead: https://supporthtml.oracle.com/ep/faces/index.jspx

Till Next Time

Tuesday, January 19, 2010

OBIEE Google Charts part 2

Impress with real venn diagrams:

image

First get your data:

image

add an extra column with a row count:

image image

Hide it:

image

add an narrative view:

<img src="" id="venn_chart@9"/>  <!-- creates an unique img tag -->
<script type="text/javascript">
var chartURL = "http://chart.apis.google.com/chart?cht=v&chs=200x200&chd=t:@2,@3,@4,@5,@6,@7,@8&chtt=@1&chdl=a|b|c&chdlp=b" ;
/* cht = chart type
   chs = chart size
  chd = chart data
  chtt = chart title
  chdl = chart legend
  chdlp= chart legend position
  more info http://code.google.com/intl/nl/apis/chart/ */

/* get the chart */
document.getElementById('venn_chart@9').src = chartURL;
</script>

 

Put all together:

image

Till Next Time

This article is also published on http://knowledge.ciber.nl

Saturday, January 16, 2010

OBIEE Google Charts part 1

or how to get from:

image

to this:

image

in 5 minutes.

It uses the same technique we used with the googlemaps. Create a new narrative view.

In the prefix part put:

<!--Get an empty map-->
<img src="http://chart.apis.google.com/chart?cht=t&chm=europe&chs=440x220" id="GD_mapImg"/>
<!--chm ==> geographical area (africa, asia, europe, middle_east, south_america, usa, world)-->
<!--chs ==> canvas size max 440X220-->
<!--more info http://code.google.com/intl/nl/apis/chart/ -->

<script type="text/javascript">
  // setting up parameters
  var chartURL = "http://chart.apis.google.com/chart?cht=t&chtm=europe&chs=440x220&chds=1,6";
  var chartBGColor = "&chf=bg,s,EAEAEA";

  //specify the gradient: <default color>, <start of gradient>,.., <end of gradient>
  var chartPalette = "&chco=AEF5EB,EFE6CE,DFAE6B,1F6913,D94801,A63603,7F2704";

  var chartDataLabels = new Array();
  var chartData = new Array();

 

In the Narrative part put:

// Use the push command to fill the array:
chartDataLabels.push('@1');
chartData.push(@3);

 

In the postfix part put:

  // putting it all together
  chartURL = chartURL + chartBGColor + chartPalette + "&chld=" + chartDataLabels.toString().replace(/,/g,'') + "&chd=t:" + chartData.toString();;
  // now get the image from Google Chart
  document.getElementById('GD_mapImg').src = chartURL;
</script>

 

Remember to check the HTML box:

image

There are maps for africa, asia, europe, middle_east, south_america, usa and the world. For more info see: http://code.google.com/intl/nl/apis/chart/

Till Next Time

This article is also published on http://knowledge.ciber.nl

Wednesday, January 13, 2010

OBIEE ResultRowLimit

I still wonder why people want to do it: A report with more than 65000 rows, but still….
You can override the maximum number of rows that can appear in a Table view by modifying the Oracle BI Presentation Services configuration file (instanceconfig.xml) to add the following entry.


<ResultRowLimit>95000</ResultRowLimit>

 

The internal default is 65000. If the user exceeds this value, the server returns an error message when the table view is rendered.


NOTE: This entry applies to the Table view, not the Pivot Table view.
The ResultRowLimit entry controls the maximum value that can be set for the DefaultRowsDisplayed, DefaultRowsDisplayedInDelivery, and the DefaultRowsDisplayedInDownload (fi download to Excel) entries.


To set DefaultRowsDisplayed, DefaultRowsDisplayedInDelivery, or DefaultRowsDisplayedInDownload to a value that exceeds the current value of ResultRowLimit, you also must increase the value of ResultRowLimit to equal or exceed the value that you want to set.

Till Next Time

Friday, January 8, 2010

OBIEE Aggregate BY part 2

About two year ago I wrote an article on using the BY statement to “pin” your calculation on certain level. (http://obiee101.blogspot.com/2008/02/obiee-aggregate-by.html). Recently Kurt Wolf of KPI partners did a good analysis on how to “pin” the calculations on for the complete request. (http://kpipartners.blogspot.com/2009/12/aggregate-function.html) Here is a simple implementation of his findings.

Let’s start with a simple report, YEAR and AVG PRICE ("F1 Revenue"."1-01  Revenue  (Sum All)"/"F2 Units"."2-01  Billed Qty  (Sum All)"):

image

If we drill down the time dimension, we will see the AVG Price change accordingly:

image

We can “pin” an extra avereg column to the calendar year by using the AGGREGATE BY function (AGGREGATE(("F1 Revenue"."1-01  Revenue  (Sum All)"/"F2 Units"."2-01  Billed Qty  (Sum All)") by "D0 Time"."T05 Per Name Year")) (IT’S NOT in the formula editor, you will have to type it!)

image 

But what if we want it for the whole report? Simple leave the BY part empty: (AGGREGATE(("F1 Revenue"."1-01  Revenue  (Sum All)"/"F2 Units"."2-01  Billed Qty  (Sum All)") by )

image

Till Next Time

Tuesday, January 5, 2010

OBIEE Navigating from report to report

On the forums every so often you see the question: “I want to navigate from report A to report B and pass the value where the user clicks as filter” . This is actually quite simple in OBIEE. Let’s start with a simple  base report showing a list of available markets:

image

Next create a target report containing markets and revenue:

image

Next go back to your base report and open the column properties screen for your “Market” column:

image

Set the navigation target:

image

If you now test the report you will see that the clicked value isn’t passed as filter

image

This is because the report isn’t let “filter” aware. Go to your target report and set a filter on the “Market” column of the type is prompted.

image

If you now test it again, you will see the filter value is passed:

image

Till Next Time

Sunday, January 3, 2010

OBIEE PATCHES 10.1.3.4.1 part 2

Some interesting new patches have been released:

Patch ID Description Updated Size
9149026 Oracle BI Suite EE: Patch: NQSSERVER CRASHES RUNNING QUERIES AFTER UPGRADE TO 10.1.3.4.1 FROM 10.1.3.4.0 24-dec-09 28.1 MB
8342897 Oracle BI Suite EE: Patch: CANCEL A QUERY AND RE-RUN : ESSBASE RETURNS ALREADY CONNECTED TO SERVER"" 24-dec-09 28.1 MB
8599681 Oracle BI Suite EE: Patch: DATE FORMAT ISSUE ON THE DASHBOARD PROMPT 24-dec-09 12.9 MB
9179171 Oracle BI Suite EE: Patch: MERGE REQUEST ON TOP OF 10.1.3.4.1 FOR BUGS 8444119 8561377 8664686 8561472 11-dec-09 2.9 MB
9024802 Oracle BI Suite EE: Patch: SUBOPTIMAL QUERY GENERATED IN SOME HIERARCHY WITH TERADATA BACKEND 7-dec-09 28.1 MB
9143304 Oracle BI Suite EE: Patch: MERGE REQUEST ON TOP OF 10.1.3.4.1 FOR BUGS 9081493 8599681 1-dec-09 13.0 MB
9139499 Oracle BI Suite EE: Patch: MERGE REQUEST ON TOP OF 10.1.3.4.1 FOR BUGS 8599681 8921914 9073754 21-nov-09 13.3 MB
7195230 Oracle BI Suite EE: Patch: GOVERNANCE RULES THROUGH SOAP : RETAIN RULES FOR DIFFERENT CATEGORY 20-nov-09 273.3 KB
8885426 Oracle BI Suite EE: Patch: UPGRADING TO 10.1.3.4.1 RESULTS IN INCORRECT TRANSALTION OF NO RESULT TO &#39 20-nov-09 390.2 KB
8978017 Oracle BI Suite EE: Patch: ADD OR REMOVE PROGRAMS" SHOWS WRONG VERSION FOR BI OFFICE ADD-IN" 19-nov-09 34.3 MB
9081493 Oracle BI Suite EE: Patch: MERGE REQUEST ON TOP OF 10.1.3.4.1 FOR BUGS 8439796 8468309 6-nov-09 1.7 MB
7438317 Oracle BI Suite EE: Patch: BI SERVER TAKES OVER 30 MINUTES TO STARTUP 6-nov-09 519.9 KB
8803399 Oracle BI Suite EE: Patch: ASSERTION_FAILURE ERROR WHEN DASHBOARD NAME CONTAINS KOREAN CHARS 6-nov-09 1.6 MB
8927890 Oracle BI Suite EE: Patch: UPDATE FOR OBIEE 10.1.3.4.1 20-okt-09 191.2 KB
8669206 Oracle BI Suite EE: Patch: FIREFOX 3.0 REFRESH FAILURE CAUSES UNEXPECTED BEHAVIOR IN DRILLING/VIEW SELECTOR 12-okt-09 110.8 MB
8760212 Oracle BI Suite EE: Patch: COMMANDS FOR FULL AND INCREMENTAL SHOULD ALLOW DB SPECIFIC TEXTS 12-okt-09 6.8 MB
8743856 Oracle BI Suite EE: Patch: EXECUTION PLAN DOES NOT UPDATE LAST TASK AS COMPLETED 12-okt-09 6.8 MB
8990093 Oracle BI Suite EE: Patch: MLR BACKPORT FOR BASE BUGS 8797200 8909410 8603005 6-okt-09 13.1 MB
8565823 Oracle BI Suite EE: Patch: MODIFYING VIEWS.CSS .PTSECTSTABLE PADDING 0PX DOES NOT HAVE ANY IMPACT 25-sep-09 179.9 KB
8797200 Oracle BI Suite EE: Patch: METADATA CACHE IS NOT RELEASED WHEN THE GROUP CHANGES FOR THE USER 18-sep-09 13.1 MB
8633968 Oracle BI Suite EE: Patch: MLR BACKPORT FOR BASE BUGS 8331209 8371708 8372436 17-sep-09 906.9 KB
8284585 Oracle BI Suite EE: Patch: NAVIGATION/DRILL DOES NOT WORK WHEN THE COLUMN BEING DRILLED IS IN POSITION 11+ 8-sep-09 9.2 KB
8796912 Oracle BI Suite EE: Patch: DISCONNECTED DOESN'T WORK ON VISTA AS NON-ADMIN USER 3-sep-09 128.7 KB
8685156 Oracle BI Suite EE: Patch: BLR BACKPORT OF BUG 8394579 ON TOP OF 10.1.3.4.1 (BLR #147542) 28-jul-09 1.3 MB
8650261 Oracle BI Suite EE: Patch: BLR BACKPORT OF BUG 8595693 ON TOP OF 10.1.3.4.1 (BLR #143831) 24-jul-09 313.3 KB
8685120 Oracle BI Suite EE: Patch: MLR BACKPORT FOR BASE BUGS 8680924 8674235 8608837 8567128 21-jul-09 624.6 KB
6702999 Oracle BI Suite EE: Patch: REPORT AGGREGATE - RANK HAS DIFFERENT BEHAVIOR VS RANK WITH AGGREGATE 19-jun-09 147.7 KB
8616993 Oracle BI Suite EE: Patch: BI OFFICE PATCH 19-jun-09 54.0 MB
8611209 Oracle BI Suite EE: Patch: MLR BACKPORT FOR BASE BUGS 8332167, 8290868, 8350962 18-jun-09 716.0 KB
8238481 Oracle BI Suite EE: Patch: NQSERROR14026 OCCURED IRREGULARLY 9-jun-09 10.3 KB
8439796 Oracle BI Suite EE: Patch: PRIVILEGE ERROR DISPLAYED ON SELECTION OF DELIVERS RECIPIENTS 4-jun-09 1.6 MB

Yes you need a metalink/support account to download them. No, I will not download them for you and redistribute them. Ask your local Oracle representative for support.

Till next time

Saturday, January 2, 2010

OBIEE a new year

The last months of 2009 have been very very hectic. At lot of customers wanted to finish there projects, not leaving me a lot of blog time.

Still we had 343.706 page views on OBIEE101, thanks guys!

This year (2010) we will hopefully see the all new OBIEE 11g. Rumors say at the beginning of Q3. The BI market is still recovering from the “crash” resulting in many short term projects which are mainly maintenance or extensions to existing systems.

Hope you all have a good year and see you around at the forums, the blogs or the conventions.

Till Next Time

John