DB-Operationen "Cachen", aber wie?

Centin

Grünschnabel
Hi,

kenn leider die Terminologie für mein Problem nicht, deswegen konnte ich leider auch nix bei Google dazu finden. Hoffe ihr könnt mir dabei Helfen.

Folgendes Problem: Meine Anwendung speichert die Daten über EclipseLink in einer H2 Datenbank. Es kann aber passieren dass die DB-Datei von H2 mal auf den Stand von z.B. vor 2 Stunden überschrieben wird. Die Änderungen die in dieser Zeit stattfanden wären damit futsch.

Könnt ihr eine geeignete Lösung dafür vorschlagen?

Würde es vielleicht ausreichen eine Klasse zu erstellen die von EntityManager erbt und die Methoden-Aufrufe an die Vaterklasse einfach weitergibt und zusätzlich den Funktionsaufruf protokolliert und die Argumente als XML speichert? Dann könnte ich doch nachher theoretisch die protokollierten Methoden einfach noch mal ausführen, oder nicht? Bin noch neu in der Thematik, deswegen weiß ich nicht ob das überhaupt möglich ist.

Danke im Voraus

Centin
 
Du willst, dass deine Daten persistent bleiben? Eine H2 Datenbank ist in Memory das ist richtig, du kannst diese H2 Datenbank samt Daten aber auch auf Platte speichern. Ich versteh leider dein Problem nicht ganz. Und den EntityManager überschreiben um die Operationen zu persistent abzulegen um sie später erneut aufzurufen klingt für mich sehr umständlich.
 
Nunja, die einfachste Lösung wäre es, die Datenbank nicht zu überschreiben?

Ich weiss nicht wie das mit H2 funktioniert, aber normalerweise arbeitet man mit Transaktiongslogs. Diese werden nach dem Einspielen des Backups oder nach Hardwarecrashes "einfach" wieder abgefeuert.
http://en.wikipedia.org/wiki/Transaction_log

Gruss
slowy
 
Zurück