Du forveksler databaselåse med Java-låse her. JMC viser dig kun låsene inde i dit Java-program (synkroniserede blokeringer, venter osv.), den ved intet om, hvad der foregår inde i din DB. Din SQL-forespørgsel viser kun låsene på DB-niveau (tabellåse, rækkelåse osv.) og ved intet om låsene inde i dit Java-program. Det er helt forskellige områder og helt forskellige låse.
Det du har her er et dump af en tråd, der holder en lås på objektet af typen T4CConnection
med adressen 0x7af3423c0
. Det betyder kun, at denne tråd er i gang med at udføre en kode inde i en eller anden synchronized(connection)
blok. Det er alt. Tråden er ikke blokeret af andre tråde (ellers ville dens tilstand ikke være RUNNABLE
, ville det være WAITING
eller BLOCKED
). Den kører og læser noget fra en netværkssocket (sandsynligvis svaret fra DB).
En sådan adfærd er helt normal. DB-driveren udfører synkronisering på forbindelsesinstansen, mens den er i gang med at udføre en SQL-forespørgsel for ikke at tillade andre tråde at bruge den parallelt.
Der er intet, du skal bekymre dig om på dette skærmbillede og i denne tråddump.