Asp.net 当网站停止时,Oracle数据提供程序将锁定IIS工作进程
我们在Oracle11gRelease2中遇到了一个棘手的问题,w3wp进程接管了整个处理器核心,调试表明Oracle数据提供程序正在无限地抛出ThreadAbortException。开发人员通过执行以下操作发现此问题: 1) 浏览本地使用Oracle数据连接的网站(我们所有网站都使用IIS,而不是ASP.NET开发服务器)。这可以确保w3wp进程正在运行,并且应用程序池中存在活动的Oracle连接池 2) 停止网站(或在Visual Studio中对相关网站执行“全部重建”操作)Asp.net 当网站停止时,Oracle数据提供程序将锁定IIS工作进程,asp.net,oracle,iis,oracle11g,Asp.net,Oracle,Iis,Oracle11g,我们在Oracle11gRelease2中遇到了一个棘手的问题,w3wp进程接管了整个处理器核心,调试表明Oracle数据提供程序正在无限地抛出ThreadAbortException。开发人员通过执行以下操作发现此问题: 1) 浏览本地使用Oracle数据连接的网站(我们所有网站都使用IIS,而不是ASP.NET开发服务器)。这可以确保w3wp进程正在运行,并且应用程序池中存在活动的Oracle连接池 2) 停止网站(或在Visual Studio中对相关网站执行“全部重建”操作) 我们在受影
我们在受影响的应用程序(所有Oracle web应用程序)中的Oracle连接处理功能完善且强健。如果禁用连接池,则不会出现此问题。此问题在Oracle 11g版本1中不会出现。任何触发重新编译(web.config更改、app_offline.htm、.aspx文件更改等)的操作都会导致内核上的CPU使用量达到最大值。如果您重复这个过程,它会使下一个内核的CPU使用率达到最大值,直到总体CPU使用率达到100% 我将windbg与sos扩展连接起来,看起来每个最大化的核心都有一个线程卡在System.AppDomain.Unload(System.AppDomain)中,另一个线程卡在Oracle.DataAccess.Client.OracleTuningAgent.DoScan()上 第一根线
- Oracle.DataAccess.Client.OracleTuningAgent.DoScan()
- Oracle.DataAccess.Client.OracleTuningAgent.TuningFunction()
- System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object)
- System.Threading.ThreadHelper.ThreadStart()
- System.AppDomain.Unload(System.AppDomain)
- System.Web.HttpRuntime.ReleaseResources和UnloadappDomain(System.Object)
- System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object)
- System.Threading.\u ThreadPoolWaitCallback.PerformWaitCallbackInternal(System.Threading.\u ThreadPoolWaitCallback)
- System.Threading.\u ThreadPoolWaitCallback.PerformWaitCallback(System.Object)
-斯科特这个问题已经解决了。该修复程序在Oracle 11.2.0.1.2中发布,可通过Oracle.com网站获得 不幸的是,该修复目前只能通过“我的Oracle支持”帐户提供 这已在11.2.0.2和补丁9966926 ORACLE 11G 11.2.0.1 WINDOWS补丁5(64位AMD64和英特尔EM64T)中修复 或解决方法:是通过在连接字符串中添加“self-tuning=false”来禁用自调优
干杯,斯科特,这解决了我的问题,尽管有点不同。基本上,我的单元测试运行人员没有通过其他好的测试,因为他们无法卸载appdomain。希望Oracle尽快发布修复程序。我认为您列出的版本中没有修复。我相信它是在11.2.0.1.2版本中修复的。