ASP でデータベース接続を保存する方法はいくつかありますが、クライアント側にとっては、データベース接続を同じセッションに保存することで、データベース接続の回数を大幅に減らすことができます。1 つの接続だけですべての作業を完了することができ、接続プールの作成、割り当て、データベース接続の回収の負荷も軽減されます。また、ユーザーがブラウザを閉じると、セッションは自動的に消えるため、ユーザーがログアウトすると自動的にデータベース接続が解放されます。
ただし、セッションを使用する場合には欠点もあります。多くのユーザーが異なるセッションを作成すると、ユーザーのリクエストが多くなると、一方ではサーバー側でセッションの保存に負荷がかかりますし、もう一方ではセッション ID の制約により、必ず衝突が発生します。これは Java では EJB を使用して解決されており、セッション 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
'セッションを使用してデータベース接続を制御する
'注意:これは一定数以下の接続にのみ適用されます。接続ユーザーが増えると、セッションも増えます。
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