Поделиться через


Очистка на стороне сервера

Представьте себе следующий сценарий:

Клиент открывает дескриптор контекста, а затем останавливает или теряет подключение к серверу. Как сервер обнаруживает, что произошел сбой клиента и дескриптор контекста должен быть запущен? Существует два подсценария: одно из них заключается в том, что клиент завершает работу в упорядоченном порядке. В этом случае он уведомляет сервер о завершении работы, и сервер может выполнить очистку, в том числе выполнять сбивание контекста. Если клиент не завершает работу в упорядоченном режиме или не может уведомить сервер, сервер использует функцию поддержания активности, чтобы определить, доступен ли клиент. На стороне сервера функция RpcMgmtSetComTimeout не действует. Вместо этого сервер использует глобальный параметр для каждого компьютера — поддерживать работоспособность, который по умолчанию составляет около двух часов. Если клиент не реагирует на работоспособность сервера, подключение закрывается. При закрытии всех подключений к данному клиентскому процессу сервер выполняет очистку и запуск необработанных дескрипторов контекста.