[ teri_kalijer @ 12.07.2020. 09:55 ] @
Klijent koristi legacy aplikaciju pisanu u Delphiju, za koju nema izvorni kod. Firma od koje je softver kupljen odavno je prestala da ga razvija. Aplikacija izvršava DML operacije nad bazom kroz dinamičke upite, generisane u okviru same aplikacije, i pritom koristi najrestriktivniji nivo izolovanja transakcija - SERIALIZABLE. Upiti ne nameću SERIALIZABLE nivo eksplicitno (SET TRANSACTION ISOLATION LEVEL ...) već je taj nivo postavljen implicitno, budući da je to defaultni nivo izolovanja u Delphiju. Kao što se može pretpostaviti, to ima za posledicu česta i dugotrajna blokiranja rada korisnika pri konkurentnom korišćenju aplikacije. Sa stanovišta poslovne logike, aplikaciji tako restriktivan nivo izolovanja nije neopodan, posebno ne u delovima koji se odnose na pregled podataka. Postoji li način da se "presretnu" te DML naredbe koje aplikacija izvršava nad bazom, i da im se nametne manje restriktivan nivo izolacije (READ COMMITTED)? [Ovu poruku je menjao teri_kalijer dana 12.07.2020. u 11:32 GMT+1] |