Nettoyage côté serveur
Imaginez le scénario suivant :
Un client ouvre un handle de contexte, puis arrête ou perd la connectivité au serveur. Comment le serveur détecte-t-il que le client a échoué et que le handle de contexte doit être exécuté ? Il existe deux sous-scénarios : l’un est que le client est arrêté de manière ordonnée. Dans ce cas, il avertit le serveur qu’il s’arrête et le serveur peut propre, y compris effectuer des exécutions de contexte. Si le client ne s’arrête pas de manière ordonnée ou s’il ne peut pas en informer le serveur, le serveur utilise des données de conservation pour déterminer si le client est toujours disponible. Côté serveur, la fonction RpcMgmtSetComTimeout n’a aucun effet. Au lieu de cela, le serveur utilise le paramètre global par machine-keep alive, qui est défini par défaut sur environ deux heures. Si le client ne répond pas aux alertes de conservation du serveur, la connexion est fermée. Lorsque toutes les connexions à un processus client donné sont fermées, le serveur nettoie et exécute les handles de contexte en suspens.