Тук бъркате заключванията на база данни с заключванията на Java. JMC ви показва само ключалките във вашата Java програма (синхронизирани блокове, чакания и т.н.), той не знае нищо за това, което се случва във вашата DB. Вашата SQL заявка показва само ключалките на ниво DB (заключвания на таблици, заключвания на редове и т.н.) и не знае нищо за ключалките във вашата Java програма. Това са абсолютно различни зони и абсолютно различни ключалки.
Това, което имате тук, е дъмп на нишка, която държи заключване на обект от тип T4CConnection
с адрес 0x7af3423c0
. Това означава само, че тази нишка е в процес на изпълнение на код в някаква synchronized(connection)
блок. Това е всичко. Нишката не е блокирана от други нишки (в противен случай състоянието й няма да е RUNNABLE
, ще бъде WAITING
или BLOCKED
). Работи и чете нещо от мрежов сокет (вероятно отговор от DB).
Подобно поведение е абсолютно нормално. DB драйверът извършва синхронизиране на екземпляра на връзката, докато е в процес на изпълнение на SQL заявка, за да не позволи на други нишки да го използват паралелно.
Няма нищо, за което трябва да се тревожите на тази екранна снимка и в този дъмп на нишката.