Как сократить время ожидания, когда база данных sql 2005 недоступна - PullRequest
0 голосов
/ 14 декабря 2009

У меня есть некоторый ASP (классический) код, который запрашивает базу данных SQL 2005 Express. В настоящее время я обрабатываю программно, если эта БД отключается, обрабатывая ошибку, когда кто-то пытается подключиться и не может. Я фиксирую ошибку и пропускаю последующие запросы БД в эту базу данных, используя переменную сеанса.

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

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

Я пробовал следовать в коде;

con.CommandTimeout = 5

con.CONNECTIONTIMEOUT = 5

Любые предложения, пожалуйста?

Спасибо

Andy

Ответы [ 2 ]

0 голосов
/ 22 января 2013

Завершается с помощью параметра «Время ожидания подключения» в строке ADODB.Connection.

, например

Set con = Server.CreateObject( "ADODB.Connection" )
con.Open "Provider=SQLOLEDB;Server=databaseserver;User ID=databaseuser;Password=databasepassword;Initial Catalog=databasename;Connect Timeout=5;"

If Err.Number = 0 And con.Errors.Count = 0 Then
    'connected to database successfully
Else
    'did not connect to database successfully within timeout period specified (5 seconds in this example)
End If
0 голосов
/ 14 декабря 2009

Прежде всего вы должны выяснить, почему БД вообще не работает. Мы управляем серверами для сотен клиентов и никогда не сталкивались с проблемой сбоя БД, если не было запланированного обслуживания.

Кроме того, вы уже на правильных свойствах.

«Время ожидания подключения» устанавливается в строке подключения и определяет, как долго клиент ожидает установления соединения с базой данных. В большинстве случаев безопасное снижение этого значения должно быть безопасным - установление соединения не займет много времени.

«CommandTimeout» является свойством реализации IDbCommand и контролирует, как долго клиент ожидает возврата определенного запроса. Вы можете уменьшить это значение, если знаете, что ваши запросы не займут больше времени, чем заданное вами значение.

...