функция MI_OperationOptions_SetTimeout (mi.h)

Задает время ожидания для конкретной операции.

Синтаксис

MI_INLINE MI_Result MI_OperationOptions_SetTimeout(
  [in, out] MI_OperationOptions *options,
  [in]      const MI_Interval   *timeout
);

Параметры

[in, out] options

Указатель на структуру MI_OperationOptions .

[in] timeout

Указатель на новое значение времени ожидания операции.

Возвращаемое значение

Значение перечисления MI_Result , указывающее код возврата функции. Это может быть один из следующих кодов.

Комментарии

Это время ожидания можно задать в параметрах назначения, вызвав функцию MI_DestinationOptions_SetTimeout . Однако иногда одна операция может занять больше времени, чем другие. Поэтому лучше задать разумное значение по умолчанию для всех операций, а затем использовать эту функцию для переопределения определенных операций, которые могут занять больше времени.

Если клиент запрашивает ход выполнения, а поставщик сообщает о ходе выполнения, интервал времени ожидания будет перезапущен после каждого отчета о ходе выполнения. Для перечислений, подписок и ассоциаций интервал представляет собой максимальную длину перед доставкой объектов до истечения времени ожидания (с учетом комментария о ходе выполнения).

Если клиент выполняет операцию (например, вызов) в сеансе CIM через удаленное управление Windows, операция может занять больше времени, чем время ожидания операции, если целевой сервер недоступен (например, из-за сбоя сервера, сбоя сети или непредвиденного исключения брандмауэра). Это чрезмерное время ожидания происходит из-за того, что операция может быть разделена на вложенные операции для получения сведений о схеме с сервера, и клиент продолжает операцию, даже если один или несколько вложенных операций получения схемы были заблокированы недоступным сервером.

Чтобы устранить эту проблему и заставить клиента сообщать о результатах без чрезмерного времени ожидания, попробуйте выполнить одно или оба из следующих действий:

  • Задайте для параметра Время задержки сети WinRM очень низкое значение, выполнив следующую команду: winrm set winrm/config/client @{NetworkDelayms="DesiredValue"} , где DesiredValue — значение задержки сети в миллисекундах. Самая низкая задержка сети, которую можно указать, составляет 500 миллисекундах.

    Значение задержки сети помогает учитывать задержку сети при достижении целевого компьютера. Однако если задать небольшие значения задержки сети и времени ожидания операций, возможно, вы не сможете взаимодействовать с целевым компьютером, на доступ к которому требуется много времени. Кроме того, изменение значения задержки сети влияет на весь компьютер, а не только на одну операцию.

  • При запуске операции (вызов функции с префиксом "MI_Session_") укажите флаг MI_OPERATIONFLAGS_STANDARD_RTTI в параметре flags .

    Это изменяет поведение операции таким образом, что в случае сбоя вложенного операции выборки схемы операция прерывается и завершается немедленно, а не дожидаясь завершения последующих вложенных операций схемы. Таким образом, если сервер всегда был недоступным при запуске операции, время, затраченное на завершение операции, будет равно сумме времени ожидания операции и значению сетевой задержки WinRM.

Требования

Требование Значение
Минимальная версия клиента Windows 8
Минимальная версия сервера Windows Server 2012
Целевая платформа Windows
Header mi.h
Распространяемые компоненты Windows Management Framework 3.0 в Windows Server 2008 R2 с пакетом обновления 1 (SP1), Windows 7 с пакетом обновления 1 (SP1) и Windows Server 2008 с пакетом обновления 2 (SP2)

См. также раздел

MI_DestinationOptions_SetTimeout

MI_OperationOptions_GetTimeout

Удаленное управление Windows