Neno Lojes Vista-Tagebuch

Tag 19: Transaktionen für Registry und Dateisystem

Transaktionen sind beim Umgang mit Datenbanken und Diensten kaum mehr wegzudenken, stellen sie doch durch das ACID-Prinzip die Konsistenz der Daten bei Auftreten von Ausnahmen sicher.

Leider waren bisher Zugriffe auf das Dateisystem und die Windows-Registry nicht oder nur selten Teil von Transaktionen, und Änderungen wurden im Fehlerfall per Hand oder gar nicht rückgängig gemacht.

Genau hier können zwei eher verborgene Neuerungen von Windows Vista glänzen: nämlich das transaktionale Dateisystem (abgekürzt: TxF) und die transaktionale Registry (TxR). Kurzum: Sie können nun auch hier Transaktionen einsetzen. Dafür zuständig ist der Kernel Transaction Manager (KTM), welcher zu diesem Zweck ein eigenes API mitbringt – natürlich für C und C++.

Konkret bedeutet das, dass ein Aufruf einer Methode aus der .NET Framework-Klassenbibliothek, wie File.Delete(…) nicht den KTM verwendet und somit nicht transaktional arbeitet. Es müssen spezielle Methoden auf dem KTM API verwendet werden, die allesamt auf *Transacted enden, wie z.B. DeleteFileTransacted.

Wie das konkret funktioniert, steht in diesem Beitrag und diesem Folgeteil sowie – für die Fans audiovisueller Unterhaltung – in diesem Kurzvideo.

Aus .NET sind die Schnittstellen, wenn auch mit etwas Einbindungsaufwand, ebenfalls nutzbar: siehe dieses fertige Beispiel samt Erklärung.

Fazit: Von beiden Neuerungen – Transaktionen im Dateisystem und in der Registry – verspricht sich Microsoft im Allgemeinen zuverlässigere Anwendungen. Leider spielt das .NET Framework von Haus aus noch nicht mit, so dass man auf das Windows API zurückgreifen muss statt sich der komfortablen .NET-Klassenbibliothek zu bedienen, aber auch das wird in Zukunft sicherlich einmal anders und schlussendlich wird es auch noch einige Zeit dauern, bis man auf einem Kunden-PC nur Vista und seine Nachfolgeversionen erwarten kann.

Morgen sind die zusätzlichen Informationen dran, die Vista zu Dateien abspeichert, wie zum Beispiel die Bewertung zu Fotos. Es wäre doch sicherlich nett, diese Infos aus eigenen Anwendungen lesen und schreiben zu können.

Einen noch verbleibenden schönen Tag wünscht Ihnen,

Ihr Neno Loje

P.S. Kleiner Tipp für Technikinteressierte: einige technische Hintergründe zur Funktionsweise von TxF und TxR sind in diesem Artikel zu lesen.

Neno Loje
Freier Berater & Fachautor
Sie haben Fragen zu Visual Studio Team System (VSTS) oder Anregungen und Kommentare zu meinem Vista-Tagebuch? Dann freue ich mich auf Ihre Nachricht.

* *
* *