我查看地我的代码,我都作了关闭,一般是这样做的:
对于SqlDataReader,我采用CommandBehavior.CloseConnection
如:
dr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
对于其它的,我这样做的:
SqlConnection con=null;
try
{
}
finally
{
con.Close();
con=null;
}
为什么在Sql server里我看到那个连接还是在那sleeping,积得多时,以后的用户都登录时都会超时,说什么连接池已满,但我做的连接设置是不限制的。
请高手帮帮忙!
谢谢!
7 个解决方案
#1
不看不知道,一看吓一跳。
我的服务上sleeping的connection也有近两百过,不过我没有出理连接池已满的错误。
我的服务上sleeping的connection也有近两百过,不过我没有出理连接池已满的错误。
#2
up
#3
设置一下Max Pool Size=400
一般默认好像是100吧
一般默认好像是100吧
#4
我在Sql Server裡設置了同時連線最大值為0,(0是不限制的)
#5
Enlist=true;Pooling=true;Max Pool Size=300;Min Pool Size=0;Connection Lifetime=300;packet size=1000"
连接语句加上这些。
连接语句加上这些。
#6
我試試
#7
有用么,同问sleeping的连接回收没?
#1
不看不知道,一看吓一跳。
我的服务上sleeping的connection也有近两百过,不过我没有出理连接池已满的错误。
我的服务上sleeping的connection也有近两百过,不过我没有出理连接池已满的错误。
#2
up
#3
设置一下Max Pool Size=400
一般默认好像是100吧
一般默认好像是100吧
#4
我在Sql Server裡設置了同時連線最大值為0,(0是不限制的)
#5
Enlist=true;Pooling=true;Max Pool Size=300;Min Pool Size=0;Connection Lifetime=300;packet size=1000"
连接语句加上这些。
连接语句加上这些。
#6
我試試
#7
有用么,同问sleeping的连接回收没?