.net 连接池和多个连接字符串

.net 连接池和多个连接字符串,.net,asp.net,ado.net,connection-string,connection-pooling,.net,Asp.net,Ado.net,Connection String,Connection Pooling,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 假设REDD连接有一个存储过程,由于索引错

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
假设REDD连接有一个存储过程,由于索引错误而无限期挂起

  • 如果应用程序没有正确关闭RedDB连接(即,使用try/finally块),当用户访问站点时,池连接的回收速度有多快

  • 如果REDD连接池由于用户获得SQL超时而达到最大值,这会对BlueDB产生任何影响,还是说这是一个完全隔离的连接池


  • 如果未正确处理连接,您将受到GC的摆布。而且你永远不知道它什么时候会启动(即使你调用GC.Collect(),也不能保证会收集给定的对象)


    连接池基于连接字符串,因此您拥有的这两个连接字符串将创建两个完全分离的池。

    假定您在连接上指定了一个合理的超时,以便如果存储过程确实挂起,则可以关闭连接并将其返回到池中?