The Adabas High Availability Tool ADAHAM is designed to prevent access conflicts to Adabas containers. On each host where it is installed, ADAHAM is used to synchronize concurrent access to the Adabas containers, and then it starts the Adabas nucleus. The synchronization is performed with a file called ADAHA.{DBID}, which is located in the same directory as the database configuration. The contents of the file are continuously refreshed by an additional ADAHAM process that works on running Adabas nucleus instance. A time stamp and all relevant information about the running nucleus are written to the file ADAHA.{DBID}. If the host is down, the time stamp is used to notify other instances of ADAHAM that might be waiting.
ADAHAM performs the following steps:
Checks whether the current local nucleus is in a consistent and healthy state;
Corrects, shuts down and/or cleans up the Adabas nucleus inter-process resources if the nucleus is not working correctly;
Checks whether another Adabas nucleus/ADAHAM pair is running on another node.
ADAHAM is not a daemon; it must be started in a loop so that it can check the status of the Adabas nucleus and refresh the information in the file ADAHA.{DBID}.
ADAHAM and the associated scripts are designed to run in any distributed environment, such as a cloud or Docker environment. The script distributedCheck.sh provides the entry point to the functionality of ADAHAM. Initially, the scripts are created for Adabas in a Docker environment. The corresponding handling is used in the Docker scripts that are provided in each Adabas installation in the directory SAG directory/Adabas/docker.
Note:
ADAHAM is supported only on Linux.