Mam do czynienia z problemem, dla którego nie mam czyste rozwiązanie. Piszę aplikację Java, a aplikacja przechowuje określone dane w ograniczonym zestawie plików. Nie używamy żadnej bazy danych, tylko zwykłe pliki. Ze względu na pewne działania uruchamiane przez użytkownika niektóre pliki muszą zostać zmienione. Potrzebuję tego jako operacji "wszystko albo nic". Oznacza to, że albo wszystkie pliki są zaktualizowane, albo żaden z nich. To katastrofalne, jeśli na przykład 2 z 5 plików zostanie zmienionych, a pozostałe 3 nie z powodu jakiegoś wyjątku IOException.java - napisz dwa pliki atomicznie
Jaka jest najlepsza strategia, aby to osiągnąć? Czy osadzenie bazy danych w pamięci, takiej jak hsqldb, jest dobrym powodem do uzyskania tego rodzaju zachowania atomowości/transakcji?
Wielkie dzięki!
Wyjątek IOException może nadal występować, nawet jeśli plik jest zablokowany? – user1284566
Och, tak, masz rację. – Jonatan