Перейти к содержанию
bslls:TimeoutsInExternalResources

Таймауты при работе с внешними ресурсами (TimeoutsInExternalResources)

  • Тип: Ошибка
  • Важность: Критичный
  • Включена по умолчанию: Да
  • Теги: unpredictable, standard

Описание диагностики

При работе с внешними ресурсами с помощью объектов WSОпределения, WSПрокси, HTTPСоединение, FTPСоединение следует задавать таймаут – предельное время ожидания выполнения операции. В противном случае, в результате бесконечного ожидания программа зависнет или часть функционала программы станет недоступна. Для ИнтернетПочтовыйПрофиль платформа устанавливает значение таймаута по умолчанию в 30 секунд, но, несмотря на это, стоит явно указывать значение таймаута при использовании.

Установка таймаута является защитой от целого ряда внешних факторов:

  • нестабильного подключения к Интернету, когда регулярно происходит прерывание связи, и система не может получить цельный ответ сервера, к которому выполняется подключение;
  • при включенных антивирусных программах или при неправильных настройках брандмауэра;
  • неправильной настройки прокси-сервера;
  • ненадежной работы веб-сервера из-за возросшей нагрузки или некорректной работы скриптов.

Примеры

Неправильно:

HTTPСоединение = Новый HTTPСоединение("zabbix.localhost", 80);

или

FTPСоединение = Новый FTPСоединение(Сервер, Порт, Пользователь, Пароль, Прокси, ПассивныйРежим);

Правильно:

HTTPСоединение = Новый HTTPСоединение("zabbix.localhost", 80,,,, 1);

или

ТаймаутСоединения = 180;
HTTPСоединение = Новый HTTPСоединение("zabbix.localhost", 80,,,, ТаймаутСоединения);

Источники

Соответствие стандартам

Источник диагностики