Asp 操作Access數(shù)據(jù)庫(kù)時(shí)出現(xiàn)死鎖.ldb的解決方法
更新時(shí)間:2009年04月09日 16:16:28 作者:
在一天某個(gè)時(shí)間段內(nèi)打不開,等待好幾分鐘就會(huì)說(shuō)asp腳本超時(shí),但FTP可以登陸進(jìn)去,查看數(shù)據(jù)庫(kù)目錄時(shí),發(fā)現(xiàn)與數(shù)據(jù)庫(kù)(我的數(shù)據(jù)庫(kù)是access數(shù)據(jù)庫(kù))同名的記錄鎖定信息文件 (.ldb文件)一直都在那里
于是我登陸主機(jī)的管理面板,重啟了網(wǎng)站服務(wù),ldb文件就消失了,網(wǎng)站打開也正常了,但過(guò)了數(shù)小時(shí)后,網(wǎng)站又再次出現(xiàn)以上情況,此種情況持續(xù)了好一段時(shí)間,網(wǎng)站后來(lái)被虛擬主機(jī)的供應(yīng)商屏蔽了,反饋給我的說(shuō)法是因?yàn)槲业木W(wǎng)站運(yùn)行時(shí)大量占用CPU資源,所以予暫時(shí)屏蔽,讓我對(duì)網(wǎng)站程序或數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化。
在百度上搜索了一下這方面的情況,結(jié)果也不少,總結(jié)下來(lái)主要都是因?yàn)閷?duì)數(shù)據(jù)庫(kù)存取完后,沒有及時(shí)釋放記錄集和斷開數(shù)據(jù)庫(kù)連接,以下談?wù)劜僮鰽ccess數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)方法:
1、數(shù)據(jù)庫(kù)連接方法: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 "服務(wù)器正在維護(hù),請(qǐng)稍后再試。"
Response.End
End If
Sub CloseConn()
'以下是斷開數(shù)據(jù)庫(kù)連接語(yǔ)句
conn.close
set conn=nothing
End Sub
%>
2、關(guān)閉釋放記錄集
rs.close
set rs=nothing
3、斷開數(shù)據(jù)庫(kù)連接
conn.close
set conn=nothing
結(jié)合以上三個(gè)內(nèi)容,得出以下操作Access數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)方法 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
'以下關(guān)閉并釋放記錄集語(yǔ)句
rs.close
set rs=nothing
'調(diào)用斷開數(shù)據(jù)庫(kù)連接子函數(shù)
Call CloseConn()
%>
根據(jù)這個(gè)標(biāo)準(zhǔn),我對(duì)我的網(wǎng)站程序進(jìn)行地氈式的排查、補(bǔ)漏,最后我的網(wǎng)站終于得于正常訪問(wèn),再也沒有出現(xiàn)以前數(shù)據(jù)庫(kù)死鎖的情況了。
在百度上搜索了一下這方面的情況,結(jié)果也不少,總結(jié)下來(lái)主要都是因?yàn)閷?duì)數(shù)據(jù)庫(kù)存取完后,沒有及時(shí)釋放記錄集和斷開數(shù)據(jù)庫(kù)連接,以下談?wù)劜僮鰽ccess數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)方法:
1、數(shù)據(jù)庫(kù)連接方法: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 "服務(wù)器正在維護(hù),請(qǐng)稍后再試。"
Response.End
End If
Sub CloseConn()
'以下是斷開數(shù)據(jù)庫(kù)連接語(yǔ)句
conn.close
set conn=nothing
End Sub
%>
2、關(guān)閉釋放記錄集
rs.close
set rs=nothing
3、斷開數(shù)據(jù)庫(kù)連接
conn.close
set conn=nothing
結(jié)合以上三個(gè)內(nèi)容,得出以下操作Access數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)方法 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
'以下關(guān)閉并釋放記錄集語(yǔ)句
rs.close
set rs=nothing
'調(diào)用斷開數(shù)據(jù)庫(kù)連接子函數(shù)
Call CloseConn()
%>
根據(jù)這個(gè)標(biāo)準(zhǔn),我對(duì)我的網(wǎng)站程序進(jìn)行地氈式的排查、補(bǔ)漏,最后我的網(wǎng)站終于得于正常訪問(wèn),再也沒有出現(xiàn)以前數(shù)據(jù)庫(kù)死鎖的情況了。
您可能感興趣的文章:
- Java的MyBatis框架中對(duì)數(shù)據(jù)庫(kù)進(jìn)行動(dòng)態(tài)SQL查詢的教程
- java配置dbcp連接池(數(shù)據(jù)庫(kù)連接池)示例分享
- java配置數(shù)據(jù)庫(kù)連接池的方法步驟
- asp.net 數(shù)據(jù)庫(kù)連接池淺析
- Tomcat 5.5 數(shù)據(jù)庫(kù)連接池配置
- .net數(shù)據(jù)庫(kù)連接池配置技巧(默認(rèn)值)
- eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置數(shù)據(jù)庫(kù)連接池
- Mybatis update數(shù)據(jù)庫(kù)死鎖之獲取數(shù)據(jù)庫(kù)連接池等待
相關(guān)文章
asp+javascript實(shí)現(xiàn)404頁(yè)的處理轉(zhuǎn)換
用404來(lái)來(lái)解決頁(yè)面路徑的變換的方法2008-06-06asp的SQL語(yǔ)句中and和or同時(shí)使用的注意事項(xiàng)
這篇文章主要介紹了asp的SQL語(yǔ)句中and和or同時(shí)使用的注意事項(xiàng),需要的朋友可以參考下2015-11-11asp實(shí)現(xiàn)計(jì)算兩個(gè)時(shí)間內(nèi)的工作日的函數(shù)
asp實(shí)現(xiàn)計(jì)算兩個(gè)時(shí)間內(nèi)的工作日的函數(shù)...2007-08-08asp中提示至少一個(gè)參數(shù)沒有被指定值 解決方法
在寫SQL語(yǔ)句的時(shí)候,我們經(jīng)常會(huì)調(diào)用一些參數(shù),很可能這些參數(shù)中有一個(gè)沒有被賦值2012-10-10