Zdravim. Tento pristup se mi jevi jako dostatecny, takze diky za
nasmerovani. Jaroslav Hurdes
Pavel Kolesnikov napsal(a):
Opravdu potrebujete zamykani? Co treba takhle:
- pri kazde zmene vytvorit novy soubor a po vytvoreni souboru zaktualizovat
zaznam v databazi, aby ukazoval na novou verzi
- pri smazani pouze smazat zaznam v databazi
- v obou pripadech do nejakeho logu zapsat cestu k predchozi verzi obrazku
- pravidelne asynchronne mazat jiz neplatne verze obrazku
Samozrejme predpokladam, ze ve skutecnosti nicemu nevadi, kdyz si jeden
uzivatel v klidu dotahne soubor zatimco nekdo jiny mezitim ten soubor smazal
Pavel
2008/10/10 Jaroslav Hurdes <[EMAIL PROTECTED]>:
Zdravim, resim situaci, ze potrebuji ukladat desitky az stovky GB obrazku,
ktere maji vazbu na data v databazi. Zatim jsem to mel udelane pres ukladani
do databaze (BLOB). Toto reseni vyzaduje vykonnejsi databaze napr. Oracle,
ci DB2. Dalsi moznosti je ukladani dat primo na filesystem a v databazi si
drzet jenom cesty k souborum, coz znamena mensi zatizeni databaze.
Tady ale poterbuji vyresit soubezny pristup k datum, kdy v jednom okamziku
muze nekolik klientu cist data a zaroven muze prijit pozadavek na zapis, ci
odstraneni souboru. Potrebuji vyresit zamykani souboru pri modifikacich, tak
aby ti co ctou museli pockat, nez se operace ukonci a naopak pokud nekdo jiz
cte data, tak aby ten co modifikuje pockal, az jsou data prectena a pote se
provedlo uzamceni a modifikace.
Zatim jsem na to sel pres RandomAccesFile a zamykani pres FileChannel lock()
a release(). Muze nekdo poradit, zda je to spravna cesta, nebo zda
neexistuje jiz nejaka knihovana resici tento problem bud jako celek, nebo
nizkourovnovy pristup k souborum a jejich zamykani .
Diky Jaroslav Hurdes