Классическое приложение ASP, испытывающее SQL Server “Тайм-ауты” и “SQL Server, не существует или доступ запрещен”

Мы видели эту проблему некоторое время теперь, и я действительно пытаюсь перенести голову, что вызывает ее.

Пару раз день, мы будем видеть периоды, где веб-страницы начинают бросать" [Microsoft] [Драйвер SQL Server ODBC] Тайм-аут, истек" затем вскоре позже, страницы начинают бросать" [Microsoft] [Драйвер SQL Server ODBC] [DBNETLIB], SQL Server не существует или доступ запрещен."

У нас есть много различных приложений, которые соединяются с этим сервером базы данных. Это составляет в среднем приблизительно 2 500 параллельных соединений, обрабатывающих в среднем 10 000 транзакций в секунду. Большинство наших приложений не имеет никаких проблем вообще, проблемы, кажется, только происходят на веб-сервере. (Возможно, это связано с организацией пула подключений?)

Я не уверен, что приписать эту проблему. Рассматриваемый SQL-сервер значительно подавлен для работы, которую он делает и оборудован лицензированием на процессор. Таким образом, я не думаю, что мы смотрим на проблему лицензирования/производительности.

Я думал, возможно, была проблема возможности соединения IP, таким образом, я изменил ConnectionString для использования IP-адреса и выполнил некоторые продолжительные ping. Я получил 0 пакетов, потерянных между веб-сервером и Сервером базы данных.

Строка подключения ASP теперь похожа на это:

Provider=MSDASQL; Driver={SQL Server}; Server=10.0.100.100; Database=DBName; UID=WebUserName; PWD=WebUserPassword; ConnectionTimeout=15; CommandTimeout=120;

Пользователь является непользователем домена, соединяющимся использующий аутентификацию SQL Server. Таким образом, я не думаю, что это - связанная с доменом проблема. Я проверил файлы журнала SQL-сервера и ничего не нашел безотносительно соответствия инцидентам.

Я нашел другой stackoverflow вопрос, описывающий подобное поведение, но без разрешения.

Детали:

  • Веб-сервер: Windows 2003 Стандартный SP2, IIS 6.
  • Сервер базы данных: Microsoft SQL Server 9.0.4035

Кто-либо видел/разрешал эту проблему типа? У кого-либо есть какие-либо предложения как, туда, где я должен посмотреть затем?

Спасибо!

- Zorlack

Править

Кто-либо может сказать мне, что лучшая практика для выполнения запросов SQL у классического asp высокой загрузки? Мы хотим попытаться усилить организацию пула подключений?

В рассмотрении кода довольно много похоже на это:

Set objCn = Server.CreateObject("ADODB.Connection") 
objCn.Open(Application("RoConnStr"))
'do some stuff
objCn.Close
Set objCn = Nothing

Решение (на совет ScottE)

Эта описанная статья, к мишени, моей проблеме. Я внес изменение реестра и затем перезагрузил сервер.

Решенная проблема!

7
задан Community 23 May 2017 в 12:34
поделиться

2 ответа

Ваше веб-приложение закрывается и удаляет (обнулено) соединения с базой данных?

Кроме того, пробовали ли вы использовать SQLOLEDB вместо ODBC? Не могу придумать ни одной причины, по которой вы бы использовали здесь ODBC.

вот моя строка подключения к очень загруженному классическому asp-приложению:

Dim strcConn
strConn = "Provider=SQLOLEDB; Data Source=someserver; Initial Catalog=somedb; User ID=someuserid; Password=somepassword"

Edit

Я наткнулся на это сообщение в блоге. Вроде интересно.

http://www.ryanbutcher.com/2006/02/classic-asp-on-2003-server-with.html

7
ответ дан 7 December 2019 в 03:11
поделиться

Те случаи, когда у меня возникали подобные проблемы, всегда были связаны с тем, что кто-то держал данные открытыми в клиентском приложении без фиксации оператора 'select ...'.

Не знаю, решит ли это вашу проблему... хотя...

0
ответ дан 7 December 2019 в 03:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: