Мы используем проверку подлинности SQL (для уменьшения числа пулов соединений) и строки подключения .NET 4.0 для подключения к SQL Server Enterprise Edition 2012 SP1 на Windows 2008 R2 Enterprise Server:
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
19 октября 2012 г. 13:38:57
Авторские права (c) Microsoft Corporation
Enterprise Edition (64-разрядная версия) на Windows NT 6.1 (сборка 7601: пакет обновления 1)
Мы используем около 50 серверов, разделенных на 8 разных групп разных частей сайта.
Наш веб-сайт использует этот SQL Server для регистрации данных отслеживания посещений. За последние несколько дней он выдал следующие сообщения о сбросе пулов соединений:
Клиент не смог повторно использовать сеанс с SPID 1327, который был сброшен для пула соединений. Идентификатор ошибки - 46. Эта ошибка могла быть вызвана ошибкой предыдущей операции. Непосредственно перед этим сообщением об ошибках проверьте журналы ошибок на наличие ошибок.
Журнал ошибок гласит:
Ошибка: 18056, уровень серьезности: 20, состояние: 46.
Клиенту не удалось повторно использовать сеанс с SPID 959, который был сброшен для пула соединений. Идентификатор ошибки - 46. Эта ошибка могла быть вызвана ошибкой предыдущей операции. Непосредственно перед этим сообщением об ошибках проверьте журналы ошибок на наличие ошибок.
Не удалось войти в систему для пользователя 'xxxx'. Причина: не удалось открыть базу данных «xxxxxxxx», настроенную в объекте входа, при повторной проверке имени входа в соединении. [КЛИЕНТ: 10.xx.xx.xxx]
После некоторого поиска я нашел этот документ в блоге CSS: Как это работает: Ошибка 18056 - Клиенту не удалось повторно использовать сеанс с SPID ##, который был сброшен для пула соединений, и этот Аарон Бертран: Устранение ошибок 18456 , Я знаю, что номер ошибки отличается, но идентификатор ошибки совпадает с количеством сообщений идентичны).
Идентификатор сбоя 46 предполагает, что у входа не было разрешений. Наши логины по умолчанию имеют основную базу данных, а имя БД указывается в строке подключения.
Я хотел проверить количество пулов строк подключения и т. Д. И проверил все счетчики в Perfmon .Net Data Provider for SqlServer
. Это только дало мне возможность defaultdomain9675
для экземпляра, поэтому я выбрал это, предполагая, что это сгенерированное системой имя для нашей сети центра обработки данных. К сожалению, все счетчики читают ноль. На одном из наших других основных серверов пулы соединений колеблются около 10, что я ожидал увидеть на работоспособном сервере с такой нагрузкой.
Мой вопрос в 3 раза
Кто-нибудь может подсказать, почему Windows 2008 R2 Server не отображается
.Net Data Provider for SqlServer
?Кто-нибудь сталкивался с этим, поскольку я, очевидно, считаю, что логин, не имеющий разрешений, - красная сельдь?
Если разные группы веб-серверов имеют одинаковый синтаксис строки подключения, но с небольшим разным пробелом, это заставит сервер использовать другой пул соединений?
Минимальные и максимальные настройки памяти составляют 20 и 58 ГБ соответственно. Сервер является выделенным сервером базы данных с 64 ГБ оперативной памяти. Я не думаю, что память - проблема, поскольку у коробки, кажется, есть приличная ожидаемая страница. Автоматическое закрытие не включено. Сервер всегда работает: это веб-сайт 24x7 с интенсивным использованием.