0

SQL 2005 Expressデータベースを照会するASP(クラシック)コードがいくつかあります。誰かが接続しようとして接続できないときにエラーを処理してこのDBがダウンした場合、私は現在プログラムで処理しています。エラーをキャプチャし、セッション変数を使用してこのデータベースへの後続のdbクエリをバイパスします。

私の問題は、この最初のクエリがタイムアウトするまでに約20秒かかることです。

このタイムアウトの長さを短縮したいのですが、コードまたはデータベースのどちらのプロパティが短縮するのに適切かがわかりません。

私はコードをフォローしてみました。

con.CommandTimeout = 5

con.CONNECTIONTIMEOUT = 5

何か提案はありますか?

ありがとう、

アンディ

4

2 に答える 2

0

まず、DBがまったくダウンしている理由を調査する必要があります。私たちは何百ものクライアントのサーバーを管理しており、定期メンテナンスでない限り、DBがダウンするという問題に遭遇したことはありません。

それに加えて、あなたはすでに適切なプロパティにいます。

「接続タイムアウト」は接続文字列に設定され、クライアントがデータベースへの接続を確立するのを待機する時間を制御します。ほとんどの場合、この値を下げても安全です。接続の確立に時間がかかることはありません。

「CommandTimeout」はIDbCommand実装のプロパティであり、特定のクエリが返されるのをクライアントが待機する時間を制御します。クエリに設定した値より長くはかからないことがわかっている場合は、この値を下げることができます。

于 2009-12-14T15:34:18.030 に答える
0

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
于 2013-01-22T12:10:32.283 に答える