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

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

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Ошибка BSL
OS
Критичный Да 5 unpredictable
standard

Параметры

Имя Тип Описание Значение
по умолчанию
analyzeInternetMailProfileZeroTimeout Булево Анализировать таймаут у "ИнтернетПочтовыйПрофиль" true

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

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

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

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

Примеры

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

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

или

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

Правильно:

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

или

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

Источники

Сниппеты

Экранирование кода

// BSLLS:TimeoutsInExternalResources-off
// BSLLS:TimeoutsInExternalResources-on

Параметр конфигурационного файла

"TimeoutsInExternalResources": {
    "analyzeInternetMailProfileZeroTimeout": true
}