22) Come viene implementata la modalità asincrona nell’RPC?
Nelle RPC il client è sincrono con il server
Per implementare la modalità asincrona possiamo intervenire sul cliente facendo in modo che:
La specifica di un time-out nullo avviene:
o, per ogni chiamata, nella
clnt_call(clnt, procnum,inproc,in,outproc,out,tout)
o, come settaggio globale che ha la precedenza su quello nella clnt_call, nella clnt_control, che ha lo scopo appunto di settare alcuni parametri globali fra cui il timeout:clnt_control (clnt,CLSET_TIMEOUT, timeout)
CLIENT *clnt;
struct timeval timeout;
timeout. tv_sec = timeout. tv_usec = 0; /* nessun tempo di attesa */
Il servitore non deve inviare alcuna risposta e nella procedura di risposta si deve dichiarare xdr-void come funzione XDR e 0 come argomento
È di grande importanza l'uso di un trasporto affidabile per evitare di perdere messaggi.