1.2. How to make Application "Clustered"?

Most applications can be placed under cluster control provided the basic guidelines are met:

1.2.1. Start, Stop and monitor procedures

To enable SIC to control and monitor the application, the start, stop and monitor procedures must be defined.

1.2.1.1. Defined Start Procedure

The application must have a command to start it and all resources it may require, such as mounted file systems, IP addresses, etc. SIC brings up the required resources in the predefined order, then brings up the application using the defined start procedure. For example, to start an Oracle database, SIC first brings the required storage and file systems online, then the database instance. To start the instance, SIC must know which Oracle command to call, such as /etc/init.d/ora

1.2.1.2. Defined Stop Procedure

The instance of the application must be capable of being stopped cleanly without leaving any Lock state, such as shared memory segments or semaphores. If an application cannot be stopped normally, the stop procedure may need to kill the application using a forceful method and to the cleanup. If the application stop procedure hangs, SIC will force the system to restart or halt to avoid the application to not able to failover.

1.2.1.3. Defined Monitor Procedure

The application must have a monitor procedure that determines if the specified application instance is healthy. For example, in a database environment, the monitoring application can connect to the database server and perform SQL commands to verify read and write to the database. End-to-end monitoring is a far more robust check of application health rather than checking of process is. In SIC, this is done by Service Monitoring Agents which is a modular interface that allow specific agents to work with the cluster engine, or it can be custom developed.

1.2.2. Known state

In case of the application crashed, and SIC has detected it has failed. SIC will restart the application, and the application should always get to a known state after restart.

1.2.3. Store required data on shared disks

If the application will generate runtime data or session information make sure the data are stored on shared disks so that those data can be picked by other side.

1.2.4. Adherence to system

The application have the ability to restart at other systems with different host names and hardware network address. Adherence to license requirements, hostnames and other special hardware restrictions.