Managing multiple Presentation Services on the same Unix box

As I had mentioned, I wanted to write up a bit on how to go about setting up multiple Oracle BI presentation services, each configured to access a different repository file (RPD) running on the BI Server. The thing is that you can easily set up the BI server so that it manages more than one RPD file. This is done by adding lines in the NQSConfig.ini fil, in the Repository section:

[ REPOSITORY ]
Star = paint.rpd, DEFAULT;
SH = sh.rpd;

If both the RPD files exist in the repository directory, <ORACLE BI>/server/Repository/ , then the server will load all the listed repositories on startup. However, the default installed Presentation Service will only access the DEFAULT marked repository and any request made to the BI Server will be routed to the Star RPD. In order to take advantage of a single BI server running multiple repositories we need to install a presentation service for each repository. These services do not have to be running on the same machine, nor on the same machine as the BI Server.

  1. Install just the presentation service software in a new home, choosing just the presentation service.
  2. Modify the ODBC connection that got created during the installation so that it points to the BI server you already have and change the default repository to use SH (or what ever repository you have in mind). Also, notice that the port of the BI server can be changed, if you have set your BI server to run on a non-default port. Edit the file <ORACLE BI DATA>/setup/odbc.ini and set the parameter ServerMachine=<BI server hostname> and Repository=SH.
  3. Change the port of the presentation service to use a free port by editing the <ORACLE BI DATA>/web/config/instanceconfig.xml file. I have chosen to use port 9712 instead of the default 9710. Add the following line below the<DNS>: <Listener port="9712" />
  4. Next you need to change the deployed web application to point to the correct host:port of the new presentation service. What I have chosen to do is to have one application server with multiple versions of the analytics.war file deployed. Each deployment points to each presentation service I run, with different URL.After you deploy the WAR file, edit the web.xml file that can be found on the application server (CONTAINER HOME/applications/analytics/analytics/WEB-INF/web.xml) and change the parameters oracle.bi.presentation.sawserver.Host to the BI server hostname and oracle.bi.presentation.sawserver.Port to 9712
  5. Restart the presentation service and the web application
  6. Repeat steps 1 to 5 for each repository you wish to expose choosing a new presentation service port every time.
I hope I didn't forget anything here, if so I will maintain this post as time goes by.