Freigeben über


Serverseitige Bereinigung

Stellen Sie sich das folgende Szenario vor:

Ein Client öffnet ein Kontexthandle und verliert dann entweder die Verbindung mit dem Server oder verliert sie. Wie erkennt der Server, dass der Client fehlgeschlagen ist, und das Kontexthandle sollte ausgeführt werden? Es gibt zwei Subscenarios: einer ist, dass der Client auf geordnete Weise heruntergefahren wird. In diesem Fall benachrichtigt er den Server darüber, dass er heruntergefahren wird, und der Server kann bereinigen, einschließlich Ausführung von Kontextausführungen. Wenn der Client nicht ordnungsgemäß heruntergefahren wird oder er den Server nicht benachrichtigen kann, verwendet der Server Keep Alives, um festzustellen, ob der Client noch verfügbar ist. Auf der Serverseite hat die RpcMgmtSetComTimeout- Funktion keine Auswirkung. Stattdessen verwendet der Server die globale Einstellung pro Computer-Keep-Alive, die standardmäßig ungefähr zwei Stunden beträgt. Wenn der Client nicht auf die Keep-Alives des Servers reagiert, wird die Verbindung geschlossen. Wenn alle Verbindungen mit einem bestimmten Clientprozess geschlossen werden, bereinigt der Server und führt ausstehende Kontexthandles aus.