Friday, October 2, 2009

Enabling BI Publisher with OBIEE for External Web Users

A challenging task in implementing an OBIEE environment can be the hosting and accessing the BI publisher reports outside of a DMZ or by the general public. Enabling OBIEE using the presentation server plug-in is fairly well documented in Oracle’s install documentation as well as various blogs on the web. Once you have created a website in IIS and followed the steps your installation should look something like this:




With a virtual directory called Analytics that is pointed to the \OracleBI\web\app folder. The application it runs is the saw.dll file. The virtual directory execute permissions property should be set to "Scripts and Executables". The next step is to make sure the Siebel Analytics Web Service Extension (saw.dll) is added as an extension and marked as Allowed.





If you plan on exposing OBIEE and BI Publisher reports to external web users outside the corporate firewall you need to plan for requesting that the correct ports are opened between the Presentation Server and the IIS server and the BI Publisher Server and the IIS server. The default configuration is to open port 9710 for OBIEE and port 9704 for BI Publisher. In the diagram Presentation Server and BIP are on the same internal box. On the IIS server you need to configure the \OracleBIData\web\config\ isapiconfig.xml file with the Internal Server and the port 9710.



Example:



Also you need to configure the \OracleBI\web\app\WEB-INF\web.xml with the internal presentation server and port 9710.




Following the above steps you should have OBIEE working just fine over the internet hosted by IIS. But if you have any BI Publisher reports they will not be available. So to over-come this limitation we need to follow the instructions outlined in section 9.2 of Oracle® Business Intelligence New Features Guide

The Oracle BI Publisher component of the OBIEE installation require Oracle Containers for Java (OC4J) and will not run natively on Microsoft's Internet Information Server (IIS).IIS can be configured as a listener for OC4J. This is accomplished via an IIS proxy plug-in that is provided with the BI EE installation files. When configured, the requests are routed from IIS to OC4J so that it appears to the user that everything is being executed by IIS. Below are the configuration steps:


  1. From your BI EE install files, locate oracle_proxy.dll. The navigation path is as follows:
    \Server\Oracle_Business_Intelligence\oc4jproxy\oracle_proxy.dll

  2. Create a folder on an accessible drive, for example: c:\proxy. Copy oracle_proxy.dll to this folder.

  3. In the same folder, create a configuration file called "proxy.conf " . Following is a sample configuration file:

      1. # Server names that the proxy plug-in will recognize.
        oproxy.serverlist=Internal

      2. # Hostname to use when communicating with
        a specific server.
        oproxy.Internal.hostname=internalserver.company.com

      3. # Port to use when communicating with a specific server.
        oproxy.Internal.port=9704

      4. # Description of URL(s) that will be
        redirected to this server.
        oproxy.Internal.urlrule=/xmlpserver
        oproxy.Internal.urlrule=/xmlpserver/*

      5. When you complete this Step, there will be two files (oracle_proxy.dll and proxy.conf) in the folder that you created in Step 2.

  4. Define the OracleAS Proxy Plug-in Registry as follows:

      1. Edit your registry to create a new registry key named: HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\IIS Proxy Adapter.


      2. Specify the exact location of your configuration file with the name server_defs, and a value pointing to the location of your configuration file, for example: c:\proxy\proxy.conf.

      3. (Optional) Specify a log_file and log_level: Add a string value with the name log_file, and the desired location of the log file, for example, c:\proxy\plugin.log. Add a string value with the name log_level, and a value for the desired log level. Valid values are "debug", "inform", "error", and "emerg".

  5. Create the "oproxy" virtual directory in IIS as follows:

      1. Using the IIS management console, add a new virtual directory to your IIS Web site with the same physical path as that of oracle_proxy.dll. Name the directory "oproxy" and give it execute access.


      2. Using the IIS management console, add oracle_proxy.dll as a filter in your IIS Web site. The name of the filter should be "oproxy" and its executable must point to the directory that contains oracle_proxy.dll, for example, c:\proxy\oracle_proxy.dll.

      3. Add Oproxy as a Web service extension for c:\proxy\oracle_proxy.dll and set status to allow.


      4. Restart IIS (stop and then start the IIS server), ensuring that the filter is marked with a green arrow pointing up.

  6. Check the following configuration files to remove the port 9704 because now IIS is routing all the calls to OC4J.
    \oracleBIData\web\Config\instanceconfig.xml\oracleBI\xmlp\Admin\configutation\xmlp-server-config.xml

  7. To access BI Servlets from the IIS / OracleAS Proxy Plug-in, you must specify the complete URL for example:
    http:///xmlpserver/login.jsp


1 comment:

  1. Thanks very well described, it helped me alot.
    In everyway better than the Oracle Dokumentation!!

    ReplyDelete