We have a limitation that we can only install one OBIEE server and 1 presentation server on a machine
So basically even if we have a number of web servers running on different ports, we would still be able to work only with 1 catalog at a time (We are talking about a 1 machine system here)
It is important to note that only 1 OBIEE server is possible on a machine but this limitation does not trouble us a lot. We can specify a number of repositories in nqsconfig.ini file and an OBIEE server will load all those repositories
A sample of one such log loading 2 repositories is below
Copyright (c) 1997-2009 Oracle Corporation, All rights reserved
 Loading repository E:\OracleBusinessIntelligenceEnterproseEdition\OracleBI\server\Repository\Reports.rpd.
 Loading subject area: HR ...
 Finished loading subject area: HR.
 Loading repository E:\OracleBusinessIntelligenceEnterproseEdition\OracleBI\server\Repository\paint.rpd.
 Loading subject area: Paint ...
 Finished loading subject area: Paint.
[nQSError: 43059] Init block 'yesterday': Dynamic refresh of repository scope variables has failed.
[nQSError: 16001] ODBC error state: S1000 code: 12170 message: [Oracle][ODBC][Ora]ORA-12170: TNS:Connect timeout occurred.
 Query Cache loaded with 13 entries from saved cache files.
 : Oracle BI Server started. Version: 10.1.3.4.1.090414.1900.
Below is a screenshot of the nqsconfig.ini file
So, we can load multiple OBIEE repositories on a single OBI server.
Now we have to figure out ways in which we can use host multiple webcats on the same machine. Unfortunately this is not possible. Since only 1 presentation service can be hosted on a machine and since each presentation service would have only 1 instanceconfig.xml file which can again have only 1 entry of a webcat so basically we can have only 1 presentation service running
Again it must be noted that hosting different web servers on the same machine operating at different ports will not solve this as it is the OBIEE presentation service which is a limitation and not the web server
Now let’s start building the above concept and see how we can change the default url on the portal. Below is the url structure of OBIEE
Using a proxy server is obviously the best mechanism of hiding the details of your server but we will try to understand the ways in which we can change individual parts of the above URL
Below link is a good post to understand proxy servers
Now we can hide the ip address of the actual web server either by using virtual ip or by using the using a load balancer.
The port is the port on which the web server is operating. This port is configurable at the time on installation of the web server.
The next thing is the context root of the application. This is like a mapping to analytics.war package on the portal. These is some discussion on this package in my previous post as well
I will now describe a step by step process to change this mapping. This part deals with the web server you are working with. I have a default OC4J container installed along with the OBIEE application on windows platform.
Below is a screenshot of the home page of enterprise manager. Click on the ‘Deploy’ button (The last in the array of buttons)
Give your new application name and your context root. This context root will be a part of your new URL
Below screenshot shows your final settings. Click on the ‘Deploy’ button at the bottom of the page
The below page shows that the new application is deployed
Below page shows the new application i.e. ‘newapp’
Below page shows the old application i.e. ‘analytics’
Now let’s talk about changing the next part of the url i.e. servlet mapping
This part is again very simple. Change the web.xml file in the <OracleBIHome>\OracleBI\web\app\WEB-INF path
Then get into the following path on command prompt
Run the command: jar -cf analytics.war -C app .
Pick the analytics.war file in <OracleBIHome>\OracleBI\web path.
Then deploy the application as discussed above. I deployed another application called ‘newapp2’ which has the edited web.xml file. Below is the screenshot. Note that 'saw.dll' has been changed to 'vishal.dll'