Настройки tcp / ip для Windows и SQL-сервера
Возможно, мой вопрос глупый. В любом случае, мой SQL-сервер имеет значение поддержки активности tcp/ip, установленное на 30000 мс. В то же время я не вижу никаких ключей реестра в HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\Parameters в отношении настроек keepalive.
Следовательно, я предполагаю, что мой сервер SQL Server для Windows Server 2008 не настроен для функции keepalive tcp/ip. Это правильно? Если это правильно, отправляет ли SQL-сервер пакеты keepalive клиенту?
Другими словами, работает ли функция поддержки активности SQL-сервера, если параметры поддержки активности Windows не установлены?
Спасибо
1 ответ
Windows использует параметр keepalive из реестра (по умолчанию 2 часа). Как предположил LordBaconPants, это работает для всей машины. Отдельно SQL Server использует свой собственный keepalive, который вы уже видели в Диспетчере конфигурации SQL Server -> Конфигурация сети SQL Server -> Протоколы -> Протоколы для MSSQLSERVER -> TCP/IP, который имеет более подходящее значение (для сервера базы данных).: 30 секунд.
Протоколы поддержки TCP для TCP / IP для Windows Server 2008 и Windows Vista по умолчанию отключены. Если этот параметр включен с помощью функции Windows Sockets setsockopt, сегмент keepalive по умолчанию отправляется каждые два часа в соответствии с параметром реестра KeepAliveTime. Даже если они включены, другие протоколы верхнего уровня, такие как NetBIOS, отправляют свои собственные значения активности активности. Если интервал keepalive, используемый протоколом верхнего уровня, меньше, чем интервал keepalive TCP, значение keepalive TCP никогда не отправляется. Например, сеансы NetBIOS через TCP / IP отправляют запрос активности NetBIOS каждые 60 минут. Поэтому значения поддержки активности TCP, которые включены для сеанса NetBIOS, никогда не используются.