Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Gesperrtes Objekt auf oracle.jdbc.driver.T4CConnection gefunden

Sie verwechseln hier Datenbanksperren mit Java-Sperren. JMC zeigt Ihnen nur die Sperren in Ihrem Java-Programm (synchronisierte Blöcke, Wartezeiten usw.), es weiß nichts darüber, was in Ihrer DB vor sich geht. Ihre SQL-Abfrage zeigt nur die Sperren auf DB-Ebene (Tabellensperren, Zeilensperren usw.) und weiß nichts über die Sperren in Ihrem Java-Programm. Das sind absolut unterschiedliche Bereiche und absolut unterschiedliche Schleusen.

Was Sie hier haben, ist ein Dump eines Threads, der eine Sperre für das Objekt vom Typ T4CConnection hält mit der Adresse 0x7af3423c0 . Es bedeutet nur, dass dieser Thread dabei ist, einen Code innerhalb einer synchronized(connection) auszuführen Block. Das ist alles. Der Thread wird nicht von anderen Threads blockiert (andernfalls wäre sein Zustand nicht RUNNABLE). , wäre es WAITING oder BLOCKED ). Es läuft und liest etwas von einem Netzwerk-Socket (wahrscheinlich die Antwort von der DB).

Ein solches Verhalten ist absolut normal. Der DB-Treiber führt eine Synchronisierung auf der Verbindungsinstanz durch, während er gerade eine SQL-Abfrage ausführt, damit andere Threads ihn nicht parallel verwenden können.

Auf diesem Screenshot und in diesem Thread-Dump gibt es nichts, worüber Sie sich Sorgen machen sollten.