sql >> Databasteknik >  >> RDS >> Oracle

Oracles dataleverantör kopplar IIS-arbetarprocessen när webbplatsen stoppas

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:

  1. Återställ till 11gR1/tidigare klient
  2. Lägg till "Self Tuning=false" till anslutningssträngen. Du kommer naturligtvis att förlora fördelarna med den automatiska inställningen.

-Scott



  1. DevArts dotConnect för Oracle vs DataDirects ADO.NET-dataleverantör

  2. LocalDateTime , ZonedDateTime och Timestamp

  3. SQL infoga i välj från flera fält

  4. Extrahera sekunder från intervalltabell / Casta rekord till intervall?