2009-11-23 51 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个完全分离的池。