У нас есть сервер AWS, на котором запущены некоторые службы nodeJS.Службы, подключающиеся к MS sql, случайным образом аварийно завершают работу с сообщением «Не удалось подключиться к серверу базы данных: 1433 - Не удалось подключиться (последовательность)».
Мы работаем на:
Сервер приложений: Linux Ubuntu14.4 AWS m5 NodeJS: 8.11.2 Сервисы используют пакет mssql последней версии (4.3.0).Это включает в себя утомительный 2.7.1.
сервер БД: Windows server 2012. sql server 2012
пропускная способность: около 300 об / мин, ошибка также возникает, когда пропускная способность ниже (около 20 об / мин).Приложение работает в кластере через PM2 (запускается 4 раза).Мы видим, что ошибка происходит на всех 4 одновременно, но иногда также на 1 или 2 экземплярах.
Что мы пробовали:
- Обновление до альфа-версии mssql с утомительным 3.0.1.Не имеет значения
- Обновление с машины Amazon M4 до машины M5 с расширенными сетевыми возможностями
- Изменение настроек пула в приложении.Мы попытались установить мин соединения на 0 или низкое / высокое значение.Макс также до низкого / высокого значения, но безрезультатно.
- Дублировать сервер на новую машину.
- Установка idleTimeoutMillis равной 1 секунде
- Пинг-сервер БД, чтобы увидеть, есть ли проблема с подключением, но мы не видим странных пингов при возникновении ошибки.
Соединение при запуске приложения:
App.sqlConnection = new App.SQL.ConnectionPool(config, function(err) {
if(err){
Log.error(err);
process.exit(1);
}
App.sqlConnection.on('error', err => {
Log.error(`There was a connection err : ${err}`);
process.exit(1);
});
});
запрос;
var request = new App.SQL.Request(App.sqlConnection);
request.query(sQuery, function(err,results)
{
});
Ошибки отлавливаются обработчиком «при ошибке».
Ошибка происходит случайно в разных сервисах.Некоторые имеют больше случаев ошибки, чем другие.У нас заканчиваются варианты.Любая идея, если мы можем увидеть более подробные ошибки?