从ASPNET1.1迁移到了ASPNET2.0遇到ORA01000: 超出打开游标的最大数

昨天将我们的网站项目从ASPNET1.1迁移到了ASPNET2.0,该网站原来使用Visual Studio .NET 2003开发,这次使用Visual studio .net 2005重新编译。
我们的网站服务器共有两台,一台IBM346两个CPU 4G内存Windows 2000 Server操作系统,另一台X365 4个CPU 4G内存 Windows 2000 Server操作系统。
首先在X346上打ASPNET2.0框架很顺利,小心翼翼的将新的项目发布到该服务器,开始测试,一切很顺利,于是将X365也安装ASPNET2.0框架,不知为何当进行到正在停止IIS时安装程序死掉了,不得已重新启动再次安装ASPNET2.0,这次还好顺利安装成功,部署程序,测试一切正常。以为完事大吉,回去睡觉。今天早上发现有时页面在操作oracle数据库时出现异常,察看IIS的目录安全属性发现访问用户列表里没有ASPNET用户于是添加上ASPNET用户继续观察,此时奇怪的事情发生了,X346这个服务器不再出现访问数据库问题,X365仍然会出现访问数据库错误,由于网站设计将数据库错误捕获了显示系统忙,也没有记录日志,不知道到底是什么错误。赶快修改程序加上错误日志。错误日志显示:ORA-01000: 超出打开游标的最大数。
分析由于X365的处理能力较强,访问的用户数较多,出现这种现象的可能性比X346要大。出现这种情况一般是Oracle的连接没有及时关闭,打开的连接数太多,或者结果集没有关闭,这个网站程序在ASPNET1.1框架下没有这个问题,应该认为不是程序上忘记关闭数据库连接造成的,况且该网站对oracle只保持了一个连接,也没有使用RecordSet;试着修改一下连接串把Provider=OraOLEDB.Oracle.1改为Provider=MSDAOR也没有变化。每次出现这个错误后过一会儿,可以自己恢复正常,看到有人说要改数据库的打开游标数,可能要重起数据库,移动的业务不能随意重起,影响比较大,只能先将就着,系统结构下周要调整了,等调整后的新数据库把游标数设大一点,再看看情况吧。
原文地址:https://www.cnblogs.com/liughost/p/358293.html