Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Dostawca danych Oracle ustala proces roboczy IIS, gdy witryna internetowa jest zatrzymana

Wszystko, co wyzwala ponowną kompilację (zmiana web.config, app_offline.htm, zmiana pliku .aspx itp.) powoduje maksymalne wykorzystanie procesora przez rdzeń. Jeśli powtórzysz proces, maksymalizuje użycie procesora na następnym rdzeniu, aż całkowite użycie procesora wyniesie 100%.

Podłączyłem windbg z rozszerzeniami sos i wygląda na to, że dla każdego wymaksowanego rdzenia jest 1 wątek utknął w System.AppDomain.Unload(System.AppDomain) i inny utknął w Oracle.DataAccess.Client.OracleTuningAgent.DoScan().

Pierwszy wątek

  • 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()

Drugi wątek

  • 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)

Wygląda na to, że AppDomain.Unload czeka na OracleTuningAgent.DoScan na zakończenie, ale ten wątek jest zablokowany lub śpi.

Oracle potwierdził problem (błąd nr 9648040) i jest to najwyższy priorytet. W międzyczasie możliwe obejścia to:

  1. Wróć do 11gR1/wcześniejszego klienta
  2. Dodaj 'Self Tuning=false' do ciągu połączenia. Oczywiście stracisz korzyści płynące z automatycznego dostrajania.

-Scott



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DBMS_METADATA i inne pakiety są nieprawidłowe

  2. Python 3.3 - Połącz z bazą danych Oracle

  3. problem z hibernacją oracle10g

  4. Zainstaluj Oracle SQL Developer 19.1 w systemie Mac OS z JDK 8

  5. Łączenie się z bazą danych Oracle za pomocą Ruby