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

Znaleziono zablokowany obiekt na oracle.jdbc.driver.T4CConnection

Mylisz tutaj blokady bazy danych z blokadami Java. JMC pokazuje tylko blokady wewnątrz twojego programu Java (synchronizowane bloki, oczekiwania itp.), nie wie nic o tym, co dzieje się w twoim DB. Twoje zapytanie SQL pokazuje tylko blokady na poziomie bazy danych (blokady tabeli, blokady wierszy itp.) i nic nie wie o blokadach w twoim programie Java. To są zupełnie inne obszary i zupełnie inne zamki.

Masz tutaj zrzut wątku, który blokuje obiekt typu T4CConnection z adresem 0x7af3423c0 . Oznacza to tylko, że ten wątek jest w trakcie wykonywania kodu wewnątrz jakiegoś synchronized(connection) blok. To wszystko. Wątek nie jest blokowany przez inne wątki (w przeciwnym razie jego stan nie byłby RUNNABLE , byłoby to WAITING lub BLOCKED ). Działa i odczytuje coś z gniazda sieciowego (prawdopodobnie odpowiedź z bazy danych).

Takie zachowanie jest absolutnie normalne. Sterownik DB wykonuje synchronizację na instancji połączenia, gdy jest w trakcie wykonywania zapytania SQL, aby uniemożliwić innym wątkom używanie go równolegle.

Na tym zrzucie ekranu i w tym zrzucie wątków nie ma się czym martwić.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy przeoczę jakiekolwiek zmiany, jeśli wymienię wyzwalacz Oracle podczas działania mojej aplikacji?

  2. konwertowanie obrazu w pamięci do Blob

  3. Jak utworzyć tabelę tymczasową w bazie danych Oracle?

  4. Adaptacyjne statystyki dynamiczne zabijają wydajność w 12.1.0.2 RAC

  5. Sekwencja partycjonowana Oracle