2009-11-23 68 views
0

的ASP.NET 3.5應用程序有兩個連接字符串:連接池和多個連接字符串

Data Source=RedDB;Initial Catalog=Red;User Id=myuser;Password=pas;Max Pool Size=50;Min Pool Size=1 

Data Source=BlueDB;Initial Catalog=Blue; User Id=myuser;Password=pas;Max Pool Size=375;Min Pool Size=2 

假設RedDB連接有無限期掛一個存儲過程,由於壞的索引。

  1. 如果應用程序沒有關閉RedDB連接正確(即,用try/finally塊),如何迅速做池中的連接得到回收作爲用戶訪問該網站?

  2. 如果RedDB連接池由於用戶獲取SQL超時而最大化,是否對BlueDB有任何影響,或者是完全隔離的連接池?

+0

大概你有一個合理的連接指定的超時,以便如果一個sproc掛起那麼連接可以關閉並返回到池? – 2009-11-23 16:03:59

回答

2

如果連接沒有正確處理,那麼您就受到GC的擺佈。而且你永遠不知道什麼時候會開始(即使你調用GC.Collect()也不能保證給定的對象被收集)。

連接池基於連接字符串,因此您擁有的這2個連接字符串將創建2個完全分離的池。