2012-05-05 42 views
4

我嘗試構建數據庫故障轉移(ASP經典),但我遇到了設置問題:ConnectionTimeout。 我將它設置爲1秒,但服務器仍嘗試連接到第一個連接超過20秒。 我喜歡連接1秒後會丟失,所以我可以將用戶轉移到第二個連接。ConnectionTimeout不起作用

感謝,

<% 
DSN    = "Provider=SQLOLEDB; Data Source=62.62.62.62; Initial Catalog=150109;User Id=noa; Password=tfdh545h54h;" 
DSN1    = "Provider=SQLOLEDB; Data Source=127.0.0.1; Initial Catalog=150109;User Id=noa; Password=tfdh545h54h;" 

Set conn   = Server.CreateObject("ADODB.Connection") 
conn.ConnectionTimeout = 1 
conn.CommandTimeout = 1 
Set rs    = Server.CreateObject("ADODB.RecordSet") 
On Error Resume Next 
    conn.Open DSN 
    If Err.Number <> 0 Then 
     conn.Open DSN1 
    End If 
On Error Goto 0 
'-- 

sql ="SELECT TOP 10 *" 
sql = sql & " FROM allDB" 
rs.Open sql, conn 
if (not rs.eof) and (not rs.bof) then 
    groupARRAY = rs.GetRows 
end if 
rs.Close 

'-- 
conn.Close 
Set rs   = Nothing 
Set conn  = Nothing 
%> 

回答

4

我找了所有最相似的問題爲您here its link。請閱讀。它的一小部分就在這裏。

13秒的'最小'延遲來自較低的TCP/IP層,其中 重試任何連接至少3次。這隻能修改在 註冊表(TCP/IP協議參數)

+0

偉大的研究,你有任何想法如何繞過這一點?也許有不同的方式來做到這一點 – Noamway