Failover Support in DataDirect Connect for Oracle Drivers

View PDF

Introduction

Connection failover and connection retry are two useful features that are available in the following DataDirect Connect® for ODBC drivers: DB2 Wire Protocol, Informix Wire Protocol, Oracle Wire Protocol, Oracle, SQL Server Wire Protocol (UNIX only), and Sybase Wire Protocol.

This paper discusses our support of each of these features.

Connection Failover

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 ODBC applications depend is always available.

You can customize the DataDirect Connect for ODBC drivers for connection failover by configuring a list of alternate database servers that are tried if the primary server is not able to accept connections. Connection attempts continue until a connection is successfully established or until all the alternate database servers have been tried the specified number of times.

For example, suppose you have the environment shown in Figure 1 with multiple database servers: Database Server A, B, and C. Database Server A is designated as the primary database server, Database Server B is the first alternate server, and Database Server C is the second alternate server.

Figure 1

With connection failover enabled, the following scenario might occur:

First, the application attempts to connect to the primary database server, Database Server A (1). If connection failover is enabled and Database Server A fails to accept the connection, the application attempts to connect to Database Server B (2). If that connection attempt also fails, the application attempts to connect to Database Server C (3).

In this scenario, it is probable that at least one connection attempt would succeed, but if no connection attempt succeeds, the driver can retry each alternate database server (primary and alternate) for a specified number of attempts. You can specify the number of attempts that are made through the connection retry feature. You can also specify the number of seconds of delay, if any, between attempts through the connection delay feature. This is described in the section on Connection Retry.

A DataDirect Connect Series ODBC driver fails over to the next alternate database server only if a successful connection cannot be established with the current alternate server. 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.

To configure connection failover, you must specify a list of alternate database servers that are tried at connection time if the primary server is not accepting connections. To do this, you would use the AlternateServers connection string attribute in a connection string. Connection attempts continue until a connection is successfully established or until all the database servers in the list have been tried once (the default).

The following connection string configures the Informix Wire Protocol driver to use connection failover:

"DSN=Informix Acct Tables; AlternateServers=(Database=Infdb1:HostName=Informixhost1: PortNumber=5177:ServerName=accounting1, Database=Infdb2: HostName=Informixhost2:PortNumber=5178:ServerName=accounting2)"

Specifically, this connection string configures the driver to use two alternate servers as connection failover servers. The additional connection information required for the alternate servers is specified in the data source Informix Acct Tables.

Connection Retry

Connection retry defines the number of times the driver attempts to connect to the primary and, if configured, alternate database servers after the initial unsuccessful connection attempt. Connection retry can be an important strategy for system recovery. For example, suppose you have a power failure in which both the client and the server fails. When the power is restored and all computers are restarted, the client may be ready to attempt a connection before the server has completed its startup routines. If connection retry is enabled, the client application can continue to retry the connection until a connection is successfully accepted by the server.

Connection retry can be used in environments that have only one server or can be used as a complementary feature with connection failover in environments with multiple servers.

Using the ConnectionRetryCount and ConnectionRetryDelay connection string attributes in a connection string, you can specify the number of times the driver attempts to connect and the time in seconds between connection attempts. The following connection string configures the Informix Wire Protocol driver to use connection failover in conjunction with connection retry and connection retry delay:

"DSN=Informix Acct Tables; AlternateServers=(Database=Infdb1:HostName=Informixhost1: PortNumber=5177:ServerName=accounting1, Database=Infdb2: HostName=Informixhost2:PortNumber=5178:ServerName=accounting2); ConnectionRetryCount=4;ConnectionRetryDelay=5"

Specifically, this connection string configures the driver to use two alternate servers as connection failover servers, to attempt to connect four additional times if the initial attempt fails, and to wait five seconds between attempts. The additional connection information required for the alternate servers is specified in the data source Informix Acct Tables.

You may want to enable connection retry attempts for the primary server only and not for alternate servers. The following connection string instructs the Informix Wire Protocol driver to attempt to connect to the primary server up to ten more times if the driver was unable to establish a connection during the initial pass. The driver waits ten seconds before attempting to connect again.

"DSN=Informix AcctTables;ConnectionRetryCount=10; ConnectionRetryDelay=10"

Summary

Connection failover and connection retry are two useful features that are available in certain DataDirect Connect for ODBC drivers. Connection failover allows an application to connect to an alternate, or backup, database server if the primary database server is unavailable, ensuring that the data on which your critical ODBC applications depend is always available. Connection retry can be an important strategy for system recovery after a power failure. If connection retry is enabled, the client application can continue to retry the connection until a connection is successfully accepted by the server.


Copyright © 1993 - 2008. Progress Software Corporation. All rights reserved. | N. America: 800 876 3101 | World: +44 (0) 1753 218 930