Improving Oracle BI Web Client Performance

You can improve the performance of the Oracle BI web client by configuring the web server to serve up all static files, as well as enabling compression for both static and dynamic resources.

By enabling caching and content expiration on the web server, web browsers can determine how often to reload the static files from the server.

Follow the instructions for the web server to set up static file caching and compression for the files located in this directory.

Note:

See the following documents for full information about how to configure Oracle WebLogic Server to work with web servers such as Apache HTTP Server, Microsoft Internet Information Server (Microsoft IIS), and Oracle HTTP Server:

Using Oracle WebLogic Server Proxy Plug-Ins 12.2.1

Administrator's Guide for Oracle HTTP Server

The following sections provide example configurations:

Configuring Apache HTTP Server for Static File Caching

This example configuration assumes that you have installed the web server plug-in that enables Apache HTTP Server to proxy requests to Oracle WebLogic Server.

Make sure that the PLUGIN_HOME/lib directory is added to LD_LIBRARY_PATH, or equivalent for your operating system.

The steps in this section show an example configuration only. You can adjust your configuration as needed. See Using Oracle WebLogic Server Proxy Plug-Ins 12.2.1 for full information.

To add configuration directives for the plug-in:

  1. Locate the httpd.conf file for your Apache HTTP Server.

  2. Open the file for editing and add directives similar to the following:

    LoadModule weblogic_module modules/mod_wl.so
    
    <IfModule mod_weblogic.c>
       WebLogicPort 9704
       Debug OFF
       WebLogicHost localhost
       WLLogFile /tmp/wl-proxy.log
    </IfModule>
    
    <LocationMatch "/analytics/saw\.dll.*">
    SetOutputFilter DEFLATE
    SetHandler weblogic-handler
    </LocationMatch>
    
    <LocationMatch "/analytics/.*\.jsp.*">
    SetOutputFilter DEFLATE
    SetHandler weblogic-handler
    </LocationMatch>
    

    Note the following:

    • Modify the LoadModule directive based on where and how you installed the plug-in.

    • The IfModule directive enables the connection to Oracle WebLogic Server. See Using Oracle WebLogic Server Proxy Plug-Ins 12.2.1 for more information about the connectivity options, including how to configure a cluster and SSL considerations.

    • The LocationMatch directives are used to route all dynamic requests to Oracle WebLogic Server. Be sure to include the SetOutputFilter DEFLATE directive, which enables GZip compression for all dynamic requests.

  3. Save and close the file.

To add configuration directives for handling static files:

  1. Locate the httpd.conf file for your Apache HTTP Server.
  2. Open the file for editing and add directives similar to the following:
    Alias /analytics ORACLE_HOME/bi/bifoundation/web/appv2
    <Directory ORACLE_HOME/bi/bifoundation/web/appv2>
    # Disable cross-server ETags
    FileETag none
    # Enable compression for all files
    SetOutputFilter DEFLATE
    # Don't compress images
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    # Enable future expiry of static files
    ExpiresActive on
    ExpiresDefault "access plus 1 week"
    Header set Cache-Control "max-age=604800"
    DirectoryIndex default.jsp
    </Directory>
    
    # Restrict access to WEB-INF
    <Location /analytics/WEB-INF>
    Order Allow,Deny
    Deny from all
    </Location>
    

    Note the following:

    • You must ensure that Apache HTTP Server has access to the static files for the Oracle BI web client in ORACLE_HOME/bi/bifoundation/web/appv2. Ensure that the web server is running and has read access to this location.

    • The Alias and Directory entries tell Apache HTTP Server to handle requests for static files rather than routing them to Oracle WebLogic Server. Note the following about the directives related to compression and static file expiry:

      • FileETag

        FileETag none
        

        This directive tells the web server to disable generation of ETag headers in the response. Default ETag generation for Apache HTTP Server is tied to the file system for a single server, so generating ETags is not recommended.

      • Compression Related Directives

        SetOutputFilter DEFLATE
        # Don't compress images
        SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
        

        These directives ensure that Apache HTTP Server compresses all files except images. Typically, images are already compressed and do not benefit from additional compression.

      • Control of Expires Header

        # Enable future expiry of static files
        ExpiresActive on
        ExpiresDefault "access plus 1 week"
        

        This fragment tells Apache HTTP Server to enable setting the Expires header. In this example, the default expiration is set to one week after the first time the file was accessed by the client. You can increase this time period, but ensure that static files are refreshed often enough to handle any patches or updates made on the static files.

      • Control of the Cache-Control Header

        Header set Cache-Control "max-age=604800"
        

        This fragment tells Apache HTTP Server to set the Cache-Control header. In this example, the default is set to one week (in seconds) to match the Expires header. This value must always be kept in sync with the Expires header. This header is required to force earlier versions of Microsoft Internet Explorer to properly cache static files.

      • Handling Default URLs

        DirectoryIndex default.jsp
        

        This directive provides a fallback handler when a user requests the /analytics URL without specifying any content under it. This URL is then routed to Oracle WebLogic Server for further processing.

    • The final directive restricts access to the WEB-INF folder. This folder is part of the J2EE container's deployment descriptor and must not be exposed to web clients.

  3. Save and close the file.

Configuring Oracle HTTP Server for Static File Caching

Configuration for Oracle HTTP Server is similar to configuration for Apache HTTP Server, except that you do not need to download and install the plug-in because the mod_wl_ohs.so module is installed by default with Oracle HTTP Server.

Some configuration is performed in the mod_wl_ohs.so module directly, and some configuration is performed in httpd.conf. See Administrator's Guide for Oracle HTTP Server for full information.