Nie mam pojęcia, jak JVM jest zaimplementowana w Oracle DB, ale ponieważ (przynajmniej w niektórych typowych konfiguracjach) każde połączenie z bazą danych otrzymuje swój własny proces serwera , to jeśli osobna JVM jest osadzona w każdym z nich, zsynchronizowany blok nie zrobi wiele dobrego. Musisz użyć blokad bazy danych.