日期:2014-05-17  浏览次数:20525 次

所有池连接均在使用,并且达到了最大池大小。
程序中所有连接数据库的地方都有CLOSE,并且我现在只在单客户端上以串行的方式运行的代码,就是不会有多个数据库并发链接的情况,下一个connection的OPEN肯定都是在前一个connection的CLOSE后执行的。

按这样说,只要我链接的是同一个数据库,应该连接池中都只会有一个连接,可是我用sql server profiler跟踪了下事件,发现还是在某些时候创建了新的链接(SPID不同),链接字符串都一样不是应该还是用原先池中的连接吗,在我进行大批量数据循环插入的时候就提示连接池已满,目前我只把max pool size设置成了15。



连接池

------解决方案--------------------
spid和connection没有一对一的关系,一个connection可能产生很多个SPID,何况你的是循环操作,一旦没有释放资源,一个SPID都可以把连接池占满
------解决方案--------------------
把最大连接数致为0
------解决方案--------------------
不是数据库连接方式导致的

一定是数据库操作 sql的执行效果过低导致的