sql >> Databáze >  >> RDS >> Oracle

Uzamčený objekt nalezen na oracle.jdbc.driver.T4CConnection

Pleteš si tady zámky databáze se zámky Java. JMC vám pouze ukazuje zámky uvnitř vašeho programu Java (synchronizované bloky, čekání atd.), neví nic o tom, co se děje uvnitř vaší DB. Váš dotaz SQL zobrazuje pouze zámky na úrovni DB (zámky tabulek, zámky řádků atd.) a neví nic o zámcích uvnitř vašeho programu Java. To jsou naprosto odlišné oblasti a naprosto odlišné zámky.

To, co zde máte, je výpis vlákna, které drží zámek na objektu typu T4CConnection s adresou 0x7af3423c0 . Znamená to pouze, že toto vlákno je v procesu provádění kódu uvnitř nějakého synchronized(connection) blok. To je vše. Vlákno není blokováno jinými vlákny (jinak by jeho stav nebyl RUNNABLE , bylo by to WAITING nebo BLOCKED ). Běží a čte něco ze síťového soketu (pravděpodobně odpověď z DB).

Takové chování je naprosto normální. Ovladač DB provádí synchronizaci na instanci připojení, zatímco je v procesu provádění dotazu SQL, aby jiným vláknům nedovolil používat jej paralelně.

Na tomto snímku obrazovky a v tomto výpisu vlákna se nemusíte ničeho obávat.




  1. Proměnná pdo není ve funkci mysql definována

  2. Analýza statistik tabulky PostgreSQL

  3. Je možné zadat jedinečný index s povolenými hodnotami NULL v Rails/ActiveRecord?

  4. MySQL vícenásobné počty v jediném dotazu