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