Hallo Zusammen,
z.B. wäre jetzt so eine Transaktion das Erstellen einer Ordnerstruktur, Schreiben einer Datei, Erstellen einer Signal-Datei und das Löschen einer Datei. Bei mir ist das meistens einfaches Exceptionhandling. Die Creates am Anfang gemerkt in einer Liste und am Ende der Delete - schlägt ein Schritt fehl kann ich im catch den Rollback machen. Das funktioniert auch ohne Probleme.
Jetzt wirds natürlich interessanter, wenn man mehrere schreibende bzw. modifizierende Transaktionsschritte hat. Mal ein ganz einfaches Beispiel: die Transaktion ist das Löschen von 2 Dateien. Schlägt der zweite Delete fehl, hat man natürlich beim Rollback schon ein Problem. Jetzt könnte man natürlich die Dateien erst umbenennen und danach löschen. Bisschen blöder wirds dann wieder bei Modifikationen. Klar, hier könnte man auch erst ein Backup erstellen.
Meine Frage ist eher, ob es Technologien gibt, die sowas "out-of-the-box" anbieten. Also eine Art try-catch-rollback-finally . Der Rollback ist im Grunde implizit auf alle durchgeführten Aktionen (file/db/whatever). Glaub aber fast, dass das wunschdenken ist
z.B. wäre jetzt so eine Transaktion das Erstellen einer Ordnerstruktur, Schreiben einer Datei, Erstellen einer Signal-Datei und das Löschen einer Datei. Bei mir ist das meistens einfaches Exceptionhandling. Die Creates am Anfang gemerkt in einer Liste und am Ende der Delete - schlägt ein Schritt fehl kann ich im catch den Rollback machen. Das funktioniert auch ohne Probleme.
Jetzt wirds natürlich interessanter, wenn man mehrere schreibende bzw. modifizierende Transaktionsschritte hat. Mal ein ganz einfaches Beispiel: die Transaktion ist das Löschen von 2 Dateien. Schlägt der zweite Delete fehl, hat man natürlich beim Rollback schon ein Problem. Jetzt könnte man natürlich die Dateien erst umbenennen und danach löschen. Bisschen blöder wirds dann wieder bei Modifikationen. Klar, hier könnte man auch erst ein Backup erstellen.
Meine Frage ist eher, ob es Technologien gibt, die sowas "out-of-the-box" anbieten. Also eine Art try-catch-rollback-finally . Der Rollback ist im Grunde implizit auf alle durchgeführten Aktionen (file/db/whatever). Glaub aber fast, dass das wunschdenken ist