在 ASP 中,有多种方法可以保存数据库连接。然而,对于一个客户端来说,如果将数据库连接保存在同一个会话中,可以大大减少建立数据库连接的次数。只需要使用一个连接就能完成所有工作,同时还能减少连接池创建、分配和回收数据连接的消耗。而且,当用户关闭浏览器时,会话会自动消除,从而实现自动释放数据连接。
然而,使用会话保存也存在一些缺点。当用户请求数量过多时,会建立不同的会话,这既增加了服务端保存会话的消耗,又因为会话 ID 的有限性而导致冲突。在 Java 中,可以使用 EJB 来解决这个问题,而 Session Bean 是一种很好的解决方式。
以下是在 ASP 中使用会话保存数据连接的代码:
function BuildConn
dim ConnStr
dim path
dim conn
path = RootPath & "DBName" '设置数据库路径
ConnStr="Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath(path)
On Error Resume Next
Set conn= Server.CreateObject("ADODB.Connection")
conn.open ConnStr
If Err Then
Err.Clear
set conn=nothing
end if
set BuildConn = conn
end function
sub GetConn
'利用Session控制数据库链接
'注意,这里只适用于小于一定数量连结的应用,连结用户增加,Session同样增加
set temp = BuildConn
if(session("DBConn") = "") then
session("DBConn") = temp
end if
conn = session("DBConn") '设置conn
end sub
sub CloseConn
conn = session("DBConn") '设置conn
if conn <> "" then
conn.close
end if
end sub