Connection failover allows an application to connect to an alternate, or backup, database server if the primary database server is unavailable, for example, because of a hardware failure or traffic overload. Connection failover ensures that the data on which your critical JDBC applications depend is always available.
You can customize the JDBC Client for connection failover by configuring a list of alternate OpenAccess SDK servers that are tried if the primary server is not accepting connections. Connection attempts continue until a connection is successfully established or until all the alternate OpenAccess SDK servers have been tried the specified number of times.
For example, suppose you have the environment shown in the figure below with multiple OpenAccess SDK servers: Server A, B, and C. Server A is designated as the primary OpenAccess SDK server, Server B is the first alternate server, and Server C is the second alternate server.
Figure 6: Connection Failover Using the JDBC Client
First, the application attempts to connect to the primary OpenAccess SDK server, Server A (1). If connection failover is enabled and Server A fails to accept the connection, the application attempts to connect to Server B (2). If that connection attempt also fails, the application attempts to connect to Server C (3).
In this scenario, it is probable that at least one connection attempt would succeed, but if no connection attempt succeeds, the Client can retry each alternate OpenAccess SDK Server (primary and alternate) for a specified number of attempts.
To configure connection failover, you must specify a list of alternate OpenAccess SDK Servers that are tried at connection time if the primary server is not accepting connections. To do this, use the AlternateServers connection property. Connection attempts continue until a connection is successfully established or until all the OpenAccess SDK servers in the list have been tried once (the default).
Optionally, you can specify the following additional connection failover features:
• The number of times the JDBC Client attempts to connect to the primary and alternate OpenAccess SDK servers after the initial unsuccessful connection attempt. By default, the JDBC Client does not retry. To set this feature, use the ConnectionRetryCount connection property. See Using Connection Retry for more information.
• The wait interval, in seconds, between attempts to connect to the primary and alternate OpenAccess SDK servers. The default interval is 3 seconds. To set this feature, use the ConnectionRetryDelay connection property.
• Whether the JDBC Client will use client load balancing in its attempts to connect to primary and alternate OpenAccess SDK servers. If load balancing is enabled, the JDBC Client uses a random pattern instead of a sequential pattern in its attempts to connect. The default value is not to use load balancing. To set this feature, use the LoadBalancing connection property. See Using Client Load Balancing for more information.
You can use a connection URL to direct the JDBC Client to use connection failover, or use a JNDI LDAP provider. Refer to the OpenAccess SDK Administrator’s Guide for detailed information.