ORACLE a netransakcne operacie
Kluvanek Martin
kluvanek na tesnet.cz
Středa Listopad 26 08:29:23 CET 2003
Zdravicko vespolek.
Mam zas jednu otazocku.
Z jednoho programu potrebujem robit poriadok v suboroch vo filesysteme.
Subory su evidovane spolu s inym udajmi v DB v objektoch BFILE.
Aplikacia bezi na servri a z DB si zisti napriklad zoznam kandidatov na
zmazanie. Kandidatov na zmazanie skusi zmazat a ked sa to zadari, tak ich v DB
oznaci za zmazanych.
Neviem, ako sa k tomu dsevne postavit.
Zatial je moj nazor taky, ze je nutne
1)zamknut vsetkych kandidatov na zmazanie
(bud hromadne nejak takto:
SELECT stav, uziv_id FROM mse.zamky WHERE necoxxxxx
FOR UPDATE OF stav, uziv_id WAIT
alebo jednotlive zaznamy )
2)Potom subory zmazat.
3)potom ich v DB oznacit za zmazane a odomknut ich
Ucelom tanecku by malo byt to, ze nedode ku kolizii s niekym inym, kdo by
zapisoval do stejnej tabulky.
Mam obavu ze explicitne zamykanie zabudovane v ORA v sebe nesie riziko toho, ze
zmazanie suboru nieje transakcna operacia, ktoru by bolo mozne vratit spat. Tym
padom nieje moze transakciu zrestartovat a je nutne to riesit takymto zamykanim.
Je to tak spravne?
Neda sa to riesit nejak elegantnejse?
Dakujem za pripadne podnetne pripomienky.
--
Martin Kluvanek
ved.odd. vyvoje (head of development department)
TES s.r.o
Testovani Energetickych Systemu (Testing of Energetical Systems)
Prazska 597
674 01 Trebic
Czech republic
tel:568 8384 28 (+420 5688384 28)
fax:568 8384 27 (+420 5688384 27)
homepage: http://www.tesnet.cz
Další informace o konferenci Test