Saturday Sep 03, 2011

OBIEE 11.1.1 - Using Fusion Middleware Control to Scale BI Server Component

Before increasing the number of BI Servers per server, make sure you have enough physical memory available on 32bit / 64bit servers and during performance / load testing, adjust as needed. For a stable / an even performance over time, it is recommended to set minimum two BI Servers per instance / server.

You can use the below Scalability tab of the Capacity Management page in Fusion Middleware Control (http://<servername>:7001/em) to scale in the Oracle BI Server to two per instance and server:

Important Note: When you have multiple instances of a given Oracle Business Intelligence component in the deployment, you should first configure shared files and directories for the clustered components to use. Then, use Fusion Middleware Control to increase the number of BI Server components that run on the existing Oracle Business Intelligence host.


Sunday Aug 14, 2011

OBIEE 11.1.1 - DISABLE_SUBREQUEST_CACHING

In NQSConfig.INI file, the parameter "DISABLE_SUBREQUEST_CACHING" default value is NO. Caching subrequests improves performance and the cache hit ratio, especially for queries that combine real-time and historical data. In some cases, however, you might disable subrequest caching, such as when other methods of query optimization provide better performance.


Friday Aug 05, 2011

OBIEE 11.1.1 - Uncheck the option > Bypass Oracle BI Presentation Services Cache

Bypass Oracle BI Presentation Services Cache — Use this box to specify whether you want the query to use the Oracle BI Presentation Services Cache. In general, you should avoid selecting this box as enabling the cache has potential performance degradation issues. See below screenshot on how to uncheck this option:

  


Tuesday Jul 19, 2011

OBIEE 11.1.1 - How-to enable HTTP compression for IIS 7.0+ HTTP Server

1.  HTTP Compression should be enabled on the OBIEE site level as performance may hindered if enabled globally.

Tip: Run the following command line option to apply Dynamic Compression on OBIEE web site level, note in below command replace the “obiee” website placeholder with your web site name:

Navigate to Path: C:\Windows\System32\Inetsrv\ and Run the command: Appcmd.exe set config "obiee" -section:system.webServer/urlCompression /doDynamicCompression:"True"

2.   Only static compression is installed by default. Ensure dynamic compression feature is installed via Web Server (IIS) > Add Role Services Wizard; for step by step details refer to IIS 7.x documentation. Increase the compression level of static and dynamic files. Note: dynamic compression level default value is 0 and for static compression level default value is 7. As stated below change the level of compression (in gzip) for dynamic files to 7 and for static files to 9

Tip: Run the following command line option to increase GZip Compression Level:

Navigate to Path: C:\Windows\System32\Inetsrv\ and Run the command: Appcmd.exe set config -section:httpCompression -[name='gzip'].staticCompressionLevel:9 -[name='gzip'].dynamicCompressionLevel:7 

Important Note: Raise the dynamic compression level above seven only if you need more network bandwidth and have sufficient CPU capacity to handle the extra load.

3. Restart the IIS HTTP Server.


Saturday Jul 09, 2011

OBIEE 11.1.1 - Edit Ulimit / Kernel Settings for Starting the BI / Presentation Services on IBM AIX on POWER Systems (64-Bit)

1. Post the installation of Oracle Business Intelligence on IBM AIX on POWER Systems (64-Bit), ensure all the ulimit parameters, especially the data segment size (-d) and maximum memory size (-m) are set to unlimited before the OPMN starts the processes.

2. In addition to ulimit settings, set the following environmental variables in opmn.xml file for running OracleBIServerComponent / OracleBIPresentationServicesComponent processes:

AIXTHREAD_SCOPE=S
AIXTHREAD_MNRATIO=1:1
AIXTHREAD_MUTEX_DEBUG=OFF
AIXTHREAD_RWLOCK_DEBUG=OFF
AIXTHREAD_COND_DEBUG=OFF
SPINLOOPTIME=1000
YIELDLOOPTIME=4 (matches number of processors)
MALLOCMULTIHEAP=considersize,heaps:4 (matches number of physical processors)
MALLOCTYPE=buckets
LDR_CNTRL=IGNOREUNLOAD@LOADPUBLIC@PREREAD_SHLIB@MAXDATA=0x200000000
DB2_SKIP_TRACE=1


Monday Jul 04, 2011

OBIEE 11.1.1 - Increase the Number of Connection Pool in WebLogic Server


If JDBC (BI) data sources are running out of connections to the relational database then you need to set the maximum number of connections to high value for the following Business Intelligence Enterprise Edition data sources:

Important Note: Reason why the default value maximum capacity size is set to lower value is because it is important to protect database resources. So make sure you have enough resources on the database server (available memory is a constraint). If you increase initial / maximum capacity to very high value, you may exceed the limit of PROCESSES / OPEN_CURSORS on Oracle® Database server.

Data Source Name Default Value Suggested Value
bip_datasource Initial Capacity: 0
Maximum Capacity: 50
Initial Capacity: 0
Maximum Capacity: 100

mds-owsm Initial Capacity: 0
Maximum Capacity: 50

Initial Capacity: 0
Maximum Capacity: 100

Important Note: You need to determine the optimal value for the Maximum Capacity as part of your pre-production performance testing. Once optimal values are determined then set the value of Initial Capacity equal to the value for Maximum Capacity in order to boost performance of JDBC in WebLogic Server web applications.

Warning: Here is the example on how to size open cursors value on Oracle® database, if you have a data source with 100 connections deployed on 2 servers and if you use default Statement Cache Size 10, you may open 2000 (100 x 2 x 10) cursors on your database server for the cached statements. You can increase the open cursors limit in Oracle® database server.

Tip: How-to increase this value:
1. Log in to the WebLogic Server administration console.
2. Select your data source (for example “bip_datasource”), and then click on Connection Pool tab, and then Maximum Capacity.


Saturday Jul 02, 2011

OBIEE 11.1.1 - Factors that caused the Presentation Server to take a very long time to start

1. The size of the repository and web catalog might affect the start up times of the services. Remove any obsolete items from the repository and web catalog. Run the process of validating the catalog as per documentation.

2. If logging was enable to the TRACE (finest). This caused the Presentation Server to take a very long time to start (15 minutes) and in turn cause OPMN to timeout which threw an error in Enterprise Manager

Solution:
1.Navigate via Enterprise Manager Fusion Middleware Control > coreapplication > Diagnostics tab: Log Configuration sub-tab
2.Press Lock And Edit Configuration
3.Set 'Trace' to 'OFF'
4.Click 'Apply'
5.Click 'Activate Changes'
6.Click 'Restart to apply recent changes'.


Friday Jul 01, 2011

OBIEE 11.1.1 - Windows 2008 Tuning Parameters

Thursday Jun 30, 2011

OBIEE 11.1.1 - How to Enable Caching in Internet Information Services (IIS) 7.0+

Follow these steps to configure static file caching and content expiration if you are using IIS 7.0 Web Server with Oracle Business Intelligence. Tip: Install IIS URL Rewrite that enables Web administrators to create powerful outbound rules. Following are the steps to set up static file caching for IIS 7.0+ Web Server:

1. In “web.config” file for OBIEE static files virtual directory (ORACLE_HOME/bifoundation/web/app) add the following highlight in bold the outbound rule for caching:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <urlCompression doDynamicCompression="true" />
        <rewrite>
            <outboundRules>
                <rule name="header1" preCondition="FilesMatch" patternSyntax="Wildcard">
                    <match serverVariable="RESPONSE_CACHE_CONTROL" pattern="*" />
                    <action type="Rewrite" value="max-age=604800" />
                </rule>
                <preConditions>
   <preCondition name="FilesMatch">
                        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/css|^text/x-javascript|^text/javascript|^image/gif|^image/jpeg|^image/png" />
                    </preCondition>

                </preConditions>
            </outboundRules>
        </rewrite>
    </system.webServer>
</configuration>


2. Restart IIS.


OBIEE 11.1.1 - Tune Oracle® HTTP Server (ohs) 11.1.1.x

Oracle® HTTP Server uses directives in httpd.conf file. The directives for each Multi-Processing Module (MPM) type are defined in the httpd.conf file. The default MPM type is Worker MPM.

Parameters

Default Values

Suggested Values

MaxKeepAliveRequests

100

0

KeepAliveTimeout

5

15

KeepAlive

On

On

Timeout

300

6000

Parameters – Default Values

Suggested Values

# WinNT MPM (this MPM is for Windows Only
<IfModule mpm_winnt_module>
    ThreadsPerChild 150
    ListenBackLog   100
    MaxRequestsPerChild 0
</IfModule>

# WinNT MPM (this MPM is for Windows Only
<IfModule mpm_winnt_module>
    ThreadsPerChild  1048
    ListenBackLog    1000
    MaxRequestsPerChild 0
</IfModule>

#worker MPM (by default OHS use multithreaded mode in UNIX)
<IfModule mpm_worker_module>
 StartServers    2     
 MaxClients 150
 ListenBackLog 100
 MinSpareThreads 25
 MaxSpareThreads 75
 ThreadsPerChild 25
 MaxRequestsPerChild 0
 AcceptMutex fcntl
LockFile "${ORACLE®_INSTANCE}/diagnostics/logs/${COMPONENT_TYPE}/${COMPONENT_NAME}/http_lock"
</IfModule>

#worker MPM (by default OHS use multithreaded mode in UNIX)
<IfModule mpm_worker_module>
 StartServers    2     
 MaxClients 1024
 ListenBackLog 1000
 MinSpareThreads 25
 MaxSpareThreads 75
 ThreadsPerChild 64
 MaxRequestsPerChild 0
 AcceptMutex fcntl
LockFile "${ORACLE®_INSTANCE}/diagnostics/logs/${COMPONENT_TYPE}/${COMPONENT_NAME}/http_lock"
</IfModule>

OBIEE 11.1.1 - User Interface (UI) Performance Is Slow With Internet Explorer 8

The OBIEE 11g UI is performance is slow in IE 8 and faster in Firefox.  For VPN or WAN users, it takes long time to display links on Dashboards via IE 8. Cause is IE 8 generates many HTTP 304 return calls and this caused the 11g UI slower when compared to the Mozilla FireFox browser.

To resolve this issue, you can implement HTTP compression and caching. This is a best practice.

Why use Web Server Compression / Caching for OBIEE?

  • Bandwidth Savings: Enabling HTTP compression can have a dramatic improvement on the latency of responses. By compressing static files and dynamic application responses, it will significantly reduce the remote (high latency) user response time.
  • Improves request/response latency: Caching makes it possible to suppress the payload of the HTTP reply using the 304 status code.  Minimizing round trips over the Web to re-validate cached items can make a huge difference in browser page load times.

This screen shot depicts the flow and where the compression and decompression occurs:

Solution:

a. How to Enable HTTP Caching / Compression in Oracle HTTP Server (OHS) 11.1.1.x

1. To implement HTTP compression / caching, install and configure Oracle HTTP Server (OHS) 11.1.1.x for the bi_serverN Managed Servers (refer to "OBIEE Enterprise Deployment Guide for Oracle Business Intelligence" document for details).

2. On the OHS machine, open the file HTTP Server configuration file (httpd.conf) for editing. This file is located in the OHS installation directory.
For example: ORACLE_HOME/Oracle_WT1/instances/instance1/config/OHS/ohs1

3. In httpd.conf file, verify that the following directives are included and not commented out:

LoadModule expires_module "${ORACLE_HOME}/ohs/modules/mod_expires.so
LoadModule deflate_module "${ORACLE_HOME}/ohs/modules/mod_deflate.so

4. Add the following lines in httpd.conf file below the directive LoadModule section and restart the OHS:

#HTTP Compression
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:pdf|doc?x|ppt?x|xls?x)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
</IfModule>
#Caching of static files
ExpiresActive On
<IfModule mod_expires.c>
ExpiresByType image/gif "access plus 3 months"
ExpiresByType image/jpeg "access plus 3 months"
ExpiresByType application/x-javascript "access plus 3 months"
ExpiresByType text/css "access plus 3 months"
ExpiresByType text/javascript "access plus 3 months"
ExpiresByType image/png "access plus 3 months"
ExpiresByType application/x-shockwave-flash "access plus 3 months"
</IfModule>
#This stops the HTTP 304 replies in IE 7/8 browser
<IfModule mod_headers.c>
<FilesMatch "\.(gif|jpeg|png|x-javascript|javascript|css|swf)$">
Header set Cache-Control "max-age=7889231"
</FilesMatch>
</IfModule>


The following screen shot summarizes the before and after results and improvements after enabling compression and caching: