MSSQL Error 17187: SQL Server is not ready to accept new client connections
- Пользователи 1С и служба
ragentполучают ошибкуSQL Server is not ready to accept new client connectionsпри попытке авторизации. - В логе Errorlog повторяется сообщение
Error: 17187, Severity: 16, State: 1. - Сервер находится в процессе запуска, остановки или перевода системных баз данных в состояние онлайн.
- Исчерпание пула рабочих потоков (Worker Threads Exhaustion), при котором СУБД отвергает новые TCP-соединения.
1. Проверка текущего этапа инициализации ядра SQL Server
-- Подключение через выделенное административное соединение (DAC)
-- sqlcmd -S admin:localhost
SELECT name, state_desc FROM sys.databases WHERE name IN ('master', 'tempdb', 'msdb');2. Анализ журнала Errorlog на предмет зависшего восстановления баз
EXEC sp_readerrorlog 0, 1, 'Recovery of database';
EXEC sp_readerrorlog 0, 1, 'Recovery is';Если база tempdb повреждена или размещена на несмонтированном диске, SQL Server не сможет завершить процедуру старта.
3. Проверка исчерпания потоков ядра (Worker Threads)
SELECT
max_workers_count,
workers_count,
runnable_tasks_count,
work_queue_count
FROM sys.dm_os_sys_info;Если work_queue_count > 0 и workers_count = max_workers_count, сервер заблокирован лавиной неэффективных запросов 1С.
4. Оптимизация пула max worker threads
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
-- 0 = автоматический расчет пула ядром в зависимости от ядер CPU
EXEC sp_configure 'max worker threads', 0; RECONFIGURE;5. Проверка состояния остановки (Shutdown status)
Убедитесь, что сервер не находится в процессе принудительного завершения работы через системный диспетчер служб Windows.
Частые вопросы (FAQ)
Почему ошибка 17187 возникает сразу после перезагрузки сервера?
СУБД требуется время на накат (Redo) и откат (Undo) незафиксированных транзакций для всех баз, особенно если перед перезапуском 1С выполнялась тяжелая транзакция закрытия месяца.
Как подключиться к серверу для диагностики, если новые подключения отклоняются?
Используйте выделенное административное соединение (Dedicated Administrator Connection — DAC): в командной строке выполните sqlcmd -S admin:ИмяСервера.
Может ли сбой tempdb приводить к постоянной ошибке 17187?
Да. Если файлы tempdb не могут быть созданы при старте (например, нет места на выделенном RAM-диске/SSD), сервер зависает в цикле инициализации.
Как кластер 1С реагирует на ошибку 17187?
Кластер 1С непрерывно перезапускает процессы rphost, регистрируя ошибки потери связи с СУБД в технологическом журнале (EXCP).