Wednesday, March 25, 2009

Configure Advantage on a Windows 2008 Cluster

Advantage Database Server includes support for Windows Clustering which is now called Failover Clustering. You must use the Enterprise version of Windows 2008 Server in order to use clustering. Additionally you will need to use a Storage Area Network (SAN) either with a fiber channel connection or iSCSI connection. You can get more information on Windows 2008 Clustering here.

The first step is installing Advantage on every node in the cluster. You will need to specify some options for this to work properly. First make sure that the Suppress Message Boxes option is checked. This ensures that any messages requiring user input from the server are not displayed. If a message is displayed by Advantage (i.e. users still connected) the service may seem to hang when a shutdown command is sent. This option is on the Misc. Settings tab of the Advantage Configuration Utility.

Misc Settings

You will also want to change the error log and transaction log paths to a shared storage location. This ensures that all nodes of the cluster write to the same error log. It also ensures that transactions are rolled back in the event that the node running Advantage fails. The node that takes over the Advantage service will restore all the data back to the state it was in prior to the uncommitted transactions. These paths are defined on the File Locations tab.

File Locations

The final configuration is to set the startup type to Manual to ensure that Advantage is only running on one node at a time. Once Advantage has been installed and configured on each of the nodes it is time to add Advantage as a clustered service. This is done through the Failover Cluster Manager snap-in.

Cluster Management

Choose Configure a Service or Application to open the High Availability Wizard then choose Generic Service. Select Advantage Database Server from the list of available services. In my case it was at the bottom of the list. Next you must create a client access point,this how other machines on the network will access the service. You provide both a netbios name and an IP address for the service.


Next you specify a storage device for the service. Control of this storage device will move with the service ensuring that all information needed by the service is available to the node running Advantage. Make sure you select the device with the drive letter you choose when configuring the error log and transaction log paths. All of the data accessed by Advantage needs to be stored on this device as well. You can choose to replicate registry settings so that every node has the same values. Use the Advantage server registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Advantage

Once all of these steps have been performed you will see a confirmation screen. Verify that all the settings are correct and click Next. The Service will be created and started. You can now view a summary of your new service.


Now that the cluster and the Advantage service has been added it is time to configure your data location. Because this is a clustered environment network shares are problematic so you should use server-side aliases instead. The adsserver.ini file, which contains the aliases, is stored in the same location as the error log. This means that it will be available for each node of the cluster ensuring that the data path does not change regardless of which node Advantage is running on. Remember that you will have to turn off rights checking using the ignore rights option.

Now all that is left is the testing. Verify that you can connect to Advantage from a machine outside the cluster. Then use the Failover Cluster Manager to move the Advantage service to another node and test connectivity again. Congratulations you now have a working Advantage cluster.

One final note: Advantage clients will not automatically reconnect in the case of a node failure. The failover cluster will automatically start Advantage on another node but the clients will have to restart their applications.


Anonymous said...

Excellent Information!!!

- Bradley Bell

Anonymous said...