Anda membingungkan kunci basis data dengan kunci Java di sini. JMC hanya menunjukkan kunci di dalam program Java Anda (blok yang disinkronkan, menunggu dll), ia tidak tahu apa-apa tentang apa yang terjadi di dalam DB Anda. Kueri SQL Anda hanya menampilkan kunci pada level DB (kunci tabel, kunci baris, dll.) dan tidak tahu apa-apa tentang kunci di dalam program Java Anda. Itu adalah area yang benar-benar berbeda dan kunci yang benar-benar berbeda.
Apa yang Anda miliki di sini adalah kumpulan utas yang menyimpan kunci pada objek dengan tipe T4CConnection
dengan alamat 0x7af3423c0
. Ini hanya berarti bahwa utas ini sedang dalam proses mengeksekusi kode di dalam beberapa synchronized(connection)
memblokir. Itu saja. Utas tidak diblokir oleh utas lain (jika tidak, statusnya tidak akan RUNNABLE
, itu akan menjadi WAITING
atau BLOCKED
). Ini menjalankan dan membaca sesuatu dari soket jaringan (mungkin, respons dari DB).
Perilaku seperti itu benar-benar normal. Driver DB melakukan sinkronisasi pada instance koneksi saat sedang dalam proses mengeksekusi kueri SQL untuk tidak mengizinkan utas lain menggunakannya secara paralel.
Tidak ada yang perlu Anda khawatirkan di screenshot ini dan di thread dump ini.