The three main software components that may fail when a client process
invokes a method is the server object:
Client Process Failure: Receive-Omission
This happens when
the server has sent a message to the client process. Though it is in the
clients incoming message buffer, it does not receive it. They can be made to
tolerate one another by making the server to retransmit the message.
When client and the
server are communicating, a failure may occur is the messages in the servers
outgoing buffer are not transported to the client’s incoming message buffer.
This may be due to transmission error in network or insufficient buffer space. So,
it will try to retransmit the message once again if it fails once.
This happens when server crashes. It means that it will not
execute any further. The process has halted. For example: if a client process C
is to receive messages from the server S. If server has crashed, the process C
will no longer receive messages from server. It cannot wait forever waiting for
a message. It has to know that the server has crashed. This detection can be
done by the use of timeouts. The client process will wait for a maximum amount
of time and if no reply is received, it will know that the server has crashed.