| Предыдущий | Следующий |
| NAP_E_SHV_CONFIG_NOT_FOUND | FA_E_MAX_PERSISTED_ITEMS_REACHED |
NAP_E_SHV_TIMEOUT
Истёк тайм-аут валидатора работоспособности системы
NAP_E_SHV_TIMEOUT — это HRESULT 0x80270013 (знаковое десятичное значение -2144927725, беззнаковое десятичное значение 2150039571). AllStat на основании winerror.h описывает его так: «Истёк тайм-аут обработки запроса валидатором SHV». Значение обозначает ошибку, имеет код средства 0x27 и поле кода 0x0013.
Для случая тайм-аута валидатора работоспособности этот HRESULT относится к устаревшей технологии Network Access Protection: NAP недоступна начиная с Windows 10, а современные выпуски Windows Server не содержат прежних ролей NAP, HRA и HCAP. Поэтому его следует учитывать при анализе задержки SHV и зависимых от него служб на поддерживаемых устаревших системах, в архивной телеметрии, компонентах совместимости или проектах миграции, не ожидая наличия прежней платформы на современном компьютере.
Истёк срок асинхронной проверки
INapSystemHealthValidator::Validate получает параметр hintTimeOutInMsec. Microsoft указывает, что значение по умолчанию для всех SHV равно 2000 миллисекунд и что SHV, вернувший E_PENDING, должен вызвать OnComplete в отдельном потоке в пределах этого интервала; иначе ответ отбрасывается. NAP_E_SHV_TIMEOUT фиксирует нарушение этого срока. Это результат доступности, а не решение о том, работоспособна система или нет.
Почему проверка не укладывается в срок
- До возврата E_PENDING валидатор SHV выполняет синхронный сетевой запрос или обращение к базе данных.
- Серверная служба проверки состояния работает медленно, недоступна или выполняет внутренние повторы дольше тайм-аута NAP.
- Истощение пула потоков задерживает работу проверки или обратный вызов OnComplete.
- SHV завершает работу, но вызывает OnComplete для неправильного поколения запроса уже после исходного срока.
- Общий тайм-аут был уменьшен для всех зарегистрированных SHV без проверки самой медленной поддерживаемой серверной зависимости.
Временные данные
- Запишите моменты входа в Validate и возврата из него, решения E_PENDING, значение hintTimeOutInMsec, этапы серверной обработки, а также время SetSoHResponse и OnComplete.
- Разделяйте задержку очереди, процессорное время, сетевое время и задержку планирования обратного вызова.
- Зафиксируйте состояние процесса SHV, глубину пула потоков, число незавершённых проверок и состояние зависимого конечного узла.
- Отслеживайте, был ли отброшен поздний ответ и привёл ли он затем к NAP_E_NOT_PENDING.
Соблюдение контракта
- Возвращайте E_PENDING сразу, до медленного ввода-вывода, и выполняйте проверку по контролируемому асинхронному пути.
- Задайте для зависимостей тайм-ауты короче срока NAP, чтобы у SHV оставалось время сформировать ответ с категорией отказа.
- Ограничьте число параллельных проверок и отменяйте устаревшую серверную работу после истечения запроса.
- Измерьте время каждого SHV до изменения общего тайм-аута, поскольку нестандартное значение влияет на все зарегистрированные валидаторы.
Отличие от соседних результатов NAP
NAP_E_TOO_MANY_CALLS означает отказ допуска из-за ограничения параллелизма, к которому могут привести накопившиеся медленные проверки. NAP_E_NOT_PENDING может получить позднее завершение после тайм-аута. Ошибка результата соответствия означает, что валидатор завершил работу и признал компьютер неработоспособным; NAP_E_SHV_TIMEOUT означает, что своевременный вердикт получить не удалось.
Повтор и восстановление
Не применяйте поздний ответ SoH к запросу с истёкшим сроком. Политика должна обработать сбой связи с валидатором в соответствии с настроенным поведением для категории отказа. После восстановления зависимости можно запустить новую проверку с задержкой, но повторные автоматические попытки при той же перегрузке способны усилить лавину тайм-аутов.
Практический сценарий
Антивирусный SHV обращается к удалённой базе инвентаризации, задержка которой выросла до пяти секунд. Validate возвращает E_PENDING, но сначала истекает 2000-миллисекундный срок NAP и сообщается NAP_E_SHV_TIMEOUT. Более короткий тайм-аут серверной зависимости и возврат ответа об отказе компонента в пределах окна NAP делают поведение политики предсказуемым.
Ссылки
- Microsoft: константы ошибок NAP
- Microsoft: контракт тайм-аута Validate
- Microsoft: OnComplete
- Microsoft: интерфейсы конфигурации SHV
Нужно найти другой код? Найти другой код состояния или ошибки.
