Таймауты в Azure SQL База данных - PullRequest
0 голосов
/ 27 марта 2020

Недавно я настроил аналитику для моей Azure SQL БД, используя Azure SQL Analytics. (https://docs.microsoft.com/en-us/azure/azure-monitor/insights/azure-sql)

Одной из измеряемых метрик является время ожидания. У меня есть вход в мое приложение, и я не вижу каких-либо блокировок или взаимоблокировок, и я не вижу ничего, где запрос фактически не выполняется.

У меня такой вопрос - что считается Тайм-аут?

В качестве дополнительного вопроса, чаще всего я вижу четыре таймаута вместе. Это приложение node.js, и я использую утомительный драйвер для взаимодействия с базой данных. Есть ли что-то утомительное, когда он повторяет запросы четыре раза, et c.?

1 Ответ

0 голосов
/ 28 марта 2020

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

Azure SQL База данных закроет незанятые подключения более чем на 30 минут. Выдержка: «Например, если вы подключены к своей базе данных через SQL Server Management Studio более 30 минут без активного запроса, ваш сеанс будет остановлен и из-за отсутствия активных запросов SQL Azure не может вернуть ошибку ". Источник здесь .

При попытке соединения с базой данных Azure SQL вам нужна логика повторных попыток c. Я предлагаю использовать утомительный пул соединений , так как пул повторяет соединения.

Установите параметр retryDelay. Этот параметр представляет собой количество миллисекунд ожидания после сбоя соединения перед повторной попыткой. По умолчанию = 5000.

Параметр idleTimeout - это количество миллисекунд до закрытия неиспользуемого соединения. По умолчанию = 300000, что достаточно для Azure SQL соединений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...