在一天某個時間段內打不開,等待好幾分鐘就會說asp腳本超時,但FTP可以登陸進去,查看資料庫目錄時,發現與資料庫(我的資料庫是access資料庫)同名的記錄鎖定資訊檔案( .ldb檔)一直都在那裡於是我登陸主機的管理面板,重啟了網站服務, ldb檔案就消失了,網站開啟也正常了,但過了數小時後,網站又再次出現以上情況,此種情況持續了好一段時間,網站後來被虛擬主機的供應商屏蔽了,反饋給我的說法是因為我的網站運行時大量佔用CPU資源,所以暫時屏蔽,讓我對網站程式或資料庫進行最佳化。
在百度上搜尋了一下這方面的情況,結果也不少,總結下來主要都是因為對資料庫訪問完後,沒有及時釋放記錄集和斷開資料庫連接,以下談談操作Access資料庫的標準方法:
1.資料庫連線方法:Conn.asp
<%
dim conn
dim connstr
dim db
db=database/data.mdb
Set conn = Server.CreateObject(ADODB.Connection)
connstr=Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & Server.MapPath(&db&)
conn.Open connstr
If Err Then
err.Clear
Set Conn = Nothing
Response.Write 伺服器正在維護,請稍後再試。
Response.End
End If
Sub CloseConn()
'以下是斷開資料庫連線語句
conn.close
set conn=nothing
End Sub
%>
2、關閉釋放記錄集
rs.close
set rs=nothing
3.斷開資料庫連接
conn.close
set conn=nothing
結合以上三個內容,得出以下操作Access資料庫的標準方法Test.asp
<!--#include file=conn.asp -->
<%
sql=select * from table order by id
set rs=server.createobject(adodb.recordset)
rs.open sql,conn,1,1
if not rs.eof then
tel=rs(tel)
fax=rs(fax)
end if
'以下關閉並釋放記錄集語句
rs.close
set rs=nothing
'呼叫斷開資料庫連接子函數
Call CloseConn()
%>
根據這個標準,我對我的網站程式進行地氈式的排查、補漏,最後我的網站終於得於正常訪問,再也沒有出現以前資料庫死鎖的情況了。