资源使用后,一定释放

今天解决了某系统中一年多来一直存在的疑难问题。由于正常情况下,或者说大部分情况下,该问题是不会发生表现为错误的。而只有在特殊情况才会表现。可能当初也是由于这个原因,前辈们才把问题存了下来。这个特殊情况是什么情况呢?通过全面的跟踪,我个人分析如下(如有不当之处,还请高手指正):

当OLEDB类型的资源申请并得到占有后,由于某种原因发放的异常,例如,网络中断。紧接着系统的其他部分也发现了,刚才申请到的会话已经不在是连接状态了,接着又试图、尝试连接。但由于刚才的会话并没有释放。再次,强调由于那个OLEDB资源被已经断开的那个会话,以排斥模式占有了。此时,别的会话——当然包括,要使用该资源的,那个已经断开会话的再次尝试申请资源的会话(些句比较绕口)——再去申请那个资源就会报错。

原来的代码如下:

 

 

修改后代码如下:

         还有点要给大家分享下:这个是*.aspx.cs文件,可以直接部署到正式系统上。但如何能使新文件生效呢?我采用的办法是把池强制回收。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值