Allt som utlöser en omkompilering (web.config-ändring, app_offline.htm, .aspx-filändring, etc.) gör att CPU-användningen på kärnan maxar ut. Om du upprepar processen maximerar den CPU-användningen på nästa kärna, tills den totala CPU-användningen är 100%.
Jag kopplade upp windbg med sos-tillägg och det ser ut som att det för varje maxad kärna finns 1 tråd som har fastnat i System.AppDomain.Unload(System.AppDomain) och en annan som har fastnat på Oracle.DataAccess.Client.OracleTuningAgent.DoScan().
Första tråden
- 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()
Andra tråden
- System.AppDomain.Unload(System.AppDomain)
- System.Web.HttpRuntime.ReleaseResourcesAndUnloadAppDomain(System.Object)
- System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
- System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(System.Threading. _ThreadPoolWaitCallback)
- System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(System.Object)
Det verkar som att AppDomain.Unload väntar på att OracleTuningAgent.DoScan ska avslutas, men den tråden är blockerad eller sover.
Oracle har bekräftat problemet (bugg # 9648040) och det har högsta prioritet. Under tiden är de möjliga lösningarna:
- Återställ till 11gR1/tidigare klient
- Lägg till "Self Tuning=false" till anslutningssträngen. Du kommer naturligtvis att förlora fördelarna med den automatiska inställningen.
-Scott