OBIEE Clustering – Approach of Oracle BI Server Load balancing/Failover

Luckily I got a chance to get work on a BI Clustered Environment on behalf of a giant UK Customer .The situation demands a clustered shared repository and load balanced environment so that BI Server resource would be shared across multiple server and the consecutive request from loads of users will be distributed without being a lack of memory or a memory dump .
 As the application was so big that it could have to process million of request in a day hence the idea was to have a clustered shared BI server env . In addition to that there was multiple BI Presentation server was there .Since OBIEE still not have a active failover mechanism (until incorporated using DMZ network and deployed inside a failover Router) so we have gone for a passive failover mechanism where at any time one Presentation server will be used and absorb the request transmitted from Browser and another will be in hot standby mode and will be used in case of the Primary Presentation server stop response .
So lets make situation bit simple : We have “HostSAS1″  and “HostSAS2″ act as two BI Clustered Analytics Server and “HostSAW1″ and  “HostSAW2″ act as two BI Web Server .At any time two SAW server can pass the request to any of the SAS server and depending on the load the BI Cluster controller module will redirect the request and process it by using any of the Analytics Server resource .
Clustering1













Hence “HostSAS1″ and “HostSAS2″ need only BI server components and Cluster controller installed and configured ,whereas “HostSAW1″ and “HostSAW2″ needs only Web server component installed .Since both SAS1 and SAS2 are only configured for single BI instance having single default DSN “AnalyticsWeb” hence to configure BI Clustering we need to configure those DSN’s in both server as below. Please note that we need to make atleast one server as Primary . Hence our case SAS1 has been made as primary .
Clustering2





Check the Clustered DSN option and put the Primary and Secondary Controller information (Either Host name or IP Address) in both servers .Make necessary changes on NQClusterConfig.ini file located under ..\OracleBI_Home\server\Config
 Clustering3




After that make the Oracle BI Server and BI Clustered Controller Service up and running and Click “Test Clustered Connect” option . This should throw a successful clustered connection message .That means the BI Cluster controller now actively participating and can handshaking with two BI Server services using Clustered ODBC connection port 9706 .
Pros and Cons :
BI Server Clustering is definitely a scalable solution by which we can tie multiple server together to handle the loads of inbound requests and thus perform a good load balancing and load sharing across them . This also enhance the BI server response and inturn the performance .
However there are couple of issues observed during the application/RPD syncronisation process during polling time window .One of the known problem is ,while you are doing online RPD editing from either Primary or Seconday server and save the RPD it would restart the BI server and copy the changed RPD and syncronised it across 2 servers .Thus ,eventually it make the consistency and integrity but if any user try to access report in between sometime it would throw errors as the BI server is restarting .
Moreover , Before restarting the BI Server during the cluster sync process the RPD usually copied into a separate location of Log .But after syncronisation it doesn’t delete the RPD from Log file location . So best practice is to remove that RPD from log after service down or making the services up in clustered environment .Otherwise if you try to put a fresh RPD in Primary server it could have been replaced and syncronised by previous RPD from log file and necessarily incur some inconsistent behavior and wrong results .Believe me this is my observation while working Online in Clustered env .
This is not a Cons rather a restriction which seems logically correct .What will about your Cache Files while you env is Clustered ? As we know Cache files must be build inside individual BI Server location as separate physical files and since that location is not shared across BI multiple servers .Hence to perform the Caching in Clustered environment, the physical location for storing and sharing cache entries need to be specified using parameter “GLOBAL_CACHE_STORAGE_PATH”  under NQSCONFIG.ini file .Also it is worth to monitoring nQCluster.log from “..\OracleBI_HOME\server\Log”, if Clustering is enabled .
N.B : – To operate clustering perfectly follow the Cluster and OBAS (Analytics Server) startup sequence judiciously i.e Primary OBAS up , Seconday OBAS up , Cluster Controller of Primary up and then Secondary Controller up .