代码描述人生

.NET 相关技术 (大坏蛋的blog)

博客园 首页 新随笔 联系 订阅 管理
按以前的知识,连接一旦close,会立即被释放到连接池,但昨天我们测试组测试发现,事实没有我们测试结果那样理想,由于我们只使用一个数据库,按道理一个事务,如果能够保证连接重用的情况下,最多时候只应该是一个连接,但测试发现,一个事务,连接数目在2-5之间?why? 跟踪调试:结果有时是符合理论结果的1,有时则是2....即,速度慢,连接完全共用 总结:跟速度有关,决定加Trace,而不是使用调试环境 Trace结果:连接释放到池是个异步的过程,连接一旦close,紧接着创建相同连接,可能会去到返回池的上一个连接,也可能因为连接还没能返回而重新建立一个连接,导致连接数目上涨. 经微软高级顾问确认,以下方法可以解决池回收速度的问题 APPID里面找 MSDAINITIALIZE {2206CDB0-19C1-11D1-89E0-00C04FD7A829} 再在CLSID里面找{2206CDB0-19C1-11D1-89E0-00C04FD7A829} 添加一个DWORD,名字为[Queue Size],中间有空格,不包含括号,保留缺省值即可 这样,一旦连接关闭,改连接就被返回到池中,一个事务中能确保只用一个真实连接.
posted on 2004-05-28 09:36  大坏蛋  阅读(770)  评论(0编辑  收藏  举报