Friday, April 10, 2009

Advantage and High Availability – Hot Standby

I did a posting on High Availability back in June which discussed Warm Standby. In this posting I wanted to discuss implementing the next level commonly referred to as Hot Standby. In a Hot Standby scenario there is virtually no user intervention required. If a server fails the Advantage service and associated data are automatically started on another server. This is usually accomplished using some type of cluster services and Advantage has been tested and works with Microsoft Cluster Services (MSCS).

I recently did two postings on installing Advantage on a Windows Cluster for both Windows Server 2003 and Windows Server 2008. I also did another posting on Virtual Windows Clusters. So without repeating myself too much I thought I would discuss some of the benefits of using a cluster for your high availability solution.

The key benefit of a Hot Standby solution is the fact that it automatically recovers from a server failure. When using a cluster Advantage is configured as an application that can be moved between the nodes of the cluster. This will automatically occur if the node running Advantage fails. There are two important things to keep in mind about this configuration.

First the drive where the data is being stored MUST be on a shared storage device. If the data is stored on a physical drive on the node running Advantage it will be unavailable if that node fails. Therefore all data that will be accessed needs to be on a shared drive. You should also configure Advantage to store all of it's log files on this shared drive as well.

Second the shared drive must be configured to be moved with the Advantage service. Otherwise the data will not be available to the new node running the Advantage service. The Advantage service should be setup so that it requires the data drive to be available before starting. The Windows 2008 Failover Clustering wizard has a step for adding a data drive when you create your Application Group. You must take an additional step when creating the Application Group with Windows Server 2003.

Although this process is more automated than a warm standby solution there are still an impact to clients. If a node fails then all data opened by all clients will be closed. When the Advantage service is started on another node it will automatically rollback any failed transactions and verify the integrity of all indexes. The client machines will most likely get a 6610 error and will have to restart their application(s). They will require no changes to their data path since the node that takes over the Advantage service will respond just like the prior node.

If you are connecting to Advantage using a web server, I recommend setting the RETRY_ADS_CONNECTS setting for the client. Although this will not preserve any state information about the tables it will allow the application to obtain a successful connection without a restart. By default the Advantage client caches any 6000 class errors and will continue to fail until it is restarted.

There is a white paper available if you would like more information about high availability with Advantage.

No comments: