2008年7月22日 星期二

ASP.NET Connection 管理

理論上,在一次的 page request / webservice request 時應該都只產生一次的 db connection
之前的寫法 connection 會 open close 好幾次

目前改寫為 ConnectionFactory.Instance.GetConnection();
GetConnection 時會連線到 DB,保證在同一個 instance 時只會有一個 Connection

那在何時才將 Connection Close 呢??
目前是寫在 Global.asax Event

void Application_PostRequestHandlerExecute(object sender, EventArgs e)
{
ConnectionFactory.DisposeInstance();
}

但 ConnectionFactory.Instance 是在 Application 階層。
在同一個 Application 的期間只有一個 instance 存在。所以在多人使用時會有問題
所以 singleton 在 asp.net 使用時要注意呀

沒有留言: