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 >
