SiteMinder ODBC Loadbalance and Failover

Discussion created by masvi10 Employee on Aug 7, 2012
Latest reply on Aug 7, 2012 by Chris_Hackett

Tuesday Tip by Vijay Masurkar, Principal Support Engineer, for 8-7-2012

Questions such these have come up:

We set up Oracle RAC 11 as a user store for version 6 of policy server. There are two nodes in the Oracle RAC (Real Application Cluster). They are running fine when both are up. But, how do we achieve both, load balancing and failover? Having set up a RAC, we would like it to be available at all times.


When LoadBalancing is set to 1 in the system_odbc.ini file, it sets up what is called “client load balancing”. The ODBC driver attempts to connect to the database servers in random order. The word ‘random’ means the connection is truly random Vs. using some pre-defined algorithmic order; e.g. roundrobin. It helps to distribute new connections to keep RAC nodes from being overwhelmed with connection requests.

But when LoadBalancing is set to 0 (the initial default), the driver connects to each database server based on its pre-defined sequential order; - i.e. primary server first, and, next, the list of alternate servers in the order they are specified in the “AlternateServers” field in the system_odbc.ini file. Having AlternateServers specified, you have, in addition, failover by the order you have defined. However, it's worth noting this. A driver fails over to the next alternate database server only if a successful connection cannot be established with the current alternate server. In addition, if the driver successfully establishes communication with a database server and the connection request is rejected by the database server because, for example, the login information is invalid; then the driver generates an error and does not try to connect to the next database server in the list. It is assumed that each alternate server is a mirror of the primary and that all authentication parameters and other related information are the same.

You can set additional parameters to define further failover characteristics. And, those are based on connection failover parameters such as “ConnectionRetryCount” and “ConnectionRetryDelay”.
So, one can customize the driver to attempt to reconnect a certain number of times and at a certain time interval.

Note that connection retry can be used in environments that have only one server or can be used as a complementary feature in connection failover scenarios with multiple servers. The key is to configure the AlternateServers property to point only to the Oracle RAC listener service(s), not the Oracle RAC node itself. Oracle RAC listener services should be available at all times, and, this way, could render a live node to an application; even when the other nodes are down in the RAC.

For further details, refer to the Data Direct’s Connect for ODBC User's Guide and Reference.