When a client machine crashes or when a point in the network route between the server and a client fails, communication stalls and the AppServer may not be aware that a problem exists. Since the AppServer is a shared resource, failures of this type affect all application users. System resources like AppServer agents and memory are tied up and application resources like locked database records are unavailable to other users. It is important to be able to detect these failures and recover resources as quickly as possible.
The AppServer provides the ServerASK messaging protocol to help identify these failures. ASK stands for AppServer KeepAlive and ServerASK denotes that the direction of the keepalive messages is from the server to the clients. (The AppServer does not currently support a reciprocal ClientASK protocol.)
When an AppServer and client are configured to use ServerASK, the AppServer will periodically send a keepalive message to the client and wait for a response. If the client responds within the defined time, then the AppServer knows the connection is valid and resets the count down for the next keepalive message. If the client does not respond in the defined time, then the AppServer can presume there is a failed connection and respond appropriately, usually by disconnecting the socket.