Sie sind hier:
Wissen
Telefon (Mo-Fr 9 bis 16 Uhr):
+49 (0)201 649590-50
|
Kontaktformular
Buy me a coffee
MENU
Medien
Übersicht
Lexikon/Glossar
Spickzettel
Weblog
Konferenzvorträge
Fachbücher
Fachartikel
Leserportal
Autoren gesucht!
Literaturtipps
Praxisnahe Fallbeispiele
Downloads
Newsletter
.NET
Startseite
.NET 8.0
.NET 7.0
.NET 6.0
.NET 5.0
.NET Core
.NET 4.0/4.5.x/4.6.x
.NET 3.0/3.5
.NET 2.0
.NET-Lexikon
Entwicklerwerkzeuge
Klassenreferenz
Softwarekomponenten
Windows Runtime
World Wide Wings-Demo
Versionsgeschichte
Codebeispiele
ASP.NET
Artikel
Bücher
Schulung & Beratung
Konferenzen/Events
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Entwicklerwerkzeuge
Softwarekomponenten
Forum
Schulung & Beratung
PowerShell
Startseite
Commandlet-Referenz
Codebeispiele
Commandlet Extensions
Versionsgeschichte
Schulungen+Beratung
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Scripting
Startseite
Lexikon
FAQ
Bücher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
WMI-Klassenreferenz
Scripting-Tools
WSH-Editoren
Codebeispiele
.NET-Scripting
Forum
Schulung & Beratung
Nutzer
Anmeldung/Login
Buchleser-Registrierung
Gast-Registrierung
Hilfe
Website-FAQ
Technischer Support
Site Map
Tag Cloud
Suche
Kontakt
Erklärung des Begriffs: Transactional File System (TxF)
Begriff
Transactional File System
Abkürzung
TxF
Eintrag zuletzt aktualisiert am
12.02.2011
Zur Stichwortliste unseres Lexikons
Was ist
Transactional File System
?
Seit Windows NT 6.0 (Vista, Server 2008) unterstützt das Windows-
NTFS
-
Dateisystem
atomare
Transaktion
en.
Transactional File System (alias "Transactional
NTFS
", Abkürzung TxF) erlaubt auf Basis des
Kernel Transaction Manager
(
KTM
)
Transaktion
en im
Dateisystem
. Damit kann z.B. verhindert werden, das durch einen Programmabbruch während des Beschreibens einer Datei eine halbfertige oder inkonsistente Datei im
Dateisystem
verbleibt. Auch kann erreicht werden, dass mehrere Dateien konsistent beschrieben werden.
Das TxF nutzt den
Kernel Transaction Manager
s (
KTM
), der sich wiederum in dem schon seit langem verfügbaren
Microsoft Distributed Transaction Coordinator
(
MSDTC
) integriert. Damit kann man
Transaktion
en schaffen, die
Dateisystem
, Datenbanken und die Windows-
Registrierungsdatenbank
(
Transactional Registry
) umfassen. Auch Änderungen im
Dateisystem
auf mehreren Computern kann man als
Transaktion
abbilden.
Verfügbarkeit
TxF ist für lokale Dateien verfügbar seit
Windows Vista
, für entfernte Dateien seit
Windows Server 2008
.
API
s
Für TxF gibt es leider noch keine direkte Unterstützung im
.NET Framework
. Die Programmierschnittstelle ist offiziell von Microsoft bisher nur auf C++-Ebene in der Kernel32.dll verfügbar (z.B. durch die Funktion CreateFileTransacted(), CopyFileTransacted(), DeleteFileTransacted(), etc.).
Es gibt aber als
Open Source
-Bibliothek einen in C#-geschriebene
Wrapper
-Bibliothek mit Namen "Transactional
NTFS
Managed
Wrapper
" (
http://code.msdn.microsoft.com/txfmanaged).
System.Transactions
Damit kann man dann die elegante
Transaktion
sunterstützung durch die .NET-Bibliothek
System.Transactions
nutzen. Bei der Verwendung von
System.Transactions
ist eine Instanz von
System.Transactions
.TransactionScope zu erzeugen. Die
Transaktion
gilt als erfolgreich abgeschlossen (Commit), wenn die Complete()-
Methode
aufgerufen wird. Wird das TransactionScope vernichtet, ohne den Aufruf von Complete(), z.B. weil es zu einem Laufzeitfehler gekommen ist, gilt die
Transaktion
als nicht erfolgreich (Abort). Alle Aktionen innerhalb zwischen der Erzeugung von TransactionScope und dem Commit/Abort werden automatisch Teil der
Transaktion
, sofern es für diese Aktion einen
Transaktion
smanager gibt. Die Verwaltung der
Transaktion
obliegt dem
MSDTC
, einem Systemdienst von Windows, der gestartet sein muss.
Beispiel
Das folgende Beispiel zeigt die sehr elegante Verwendung von TransactionScope über eine using{}-Block in C# in einer
Methode
der Geschäftslogik. Innerhalb des using{}-Blocks werden zwei
Methode
n der
Datenzugriffsschicht
aufgerufen (ReduzierePlatzAnzahl () und ErzeugeBuchung()). Außerdem erfolgt das Erstellen einer Protokolldatei im
NTFS
-
Dateisystem
. Nur wenn alle drei Aktionen erfolgreich waren, kommt es zum Aufruf vom Complete(). Nur dann werden die Veränderungen in der Datenbank und die erzeugte Datei im
Dateisystem
bestandskräftig.
/// <summary>
/// Flugbuchung erstellen
/// </summary>
public string NewBuchung(int FlugNummer, int PassagierNummer)
{
try
{
string Buchungscode = FlugNummer.ToString() + "-" + PassagierNummer.ToString();
//
Transaktion
, nur erfolgreich wenn Platzanzahl reduziert und Buchung erstellt!
Using (
System.Transactions
.TransactionScope t = new
System.Transactions
.TransactionScope())
{
// hier erfolgen Änderungen in Datenbanken über zwei
Methode
n der
Datenzugriffsschicht
if (!Flug
DZS
.ReduzierePlatzAnzahl(FlugNummer, 1)) return "Kein Platz auf diesem Flug vorhanden!";
if (!Buchungs
DZS
.ErzeugeBuchung(PassagierNummer, FlugNummer)) return "Buchung nicht möglich!";
// Protokolldatei im
NTFS
-
Dateisystem
schreiben (als Teil der
Transaktion
)
string Path = @"t:\buchungen\" + Buchungscode + ".txt";
File
Stream
fs = TransactedFile.Open(Path,
System.IO
.FileMode.CreateNew,
System.IO
.FileAccess.Write,
System.IO
.FileShare.None);
Stream
Writer sw = new
Stream
Writer(fs);
sw.WriteLine(DateTime.Now + ";" + Buchungscode + ";" + FlugNummer + ";" + PassagierNummer);
sw.Close();
fs.Close();
//
Transaktion
abschließen
t.Complete();
// Buchungscode zurückgeben
return Buchungscode;
}
}
catch (
Exception
ex)
{
return "Fehler: " + ex.Message;
}
}
Querverweise zu anderen Begriffen im Lexikon
Microsoft Distributed Transaction Coordinator (MSDTC)
Kernel Transaction Manager (KTM)
Registrierungsdatenbank
Transactional Registry (TxR)
Datenzugriffsschicht (DZS)
System.Transactions
Windows Server 2008 (W08)
.NET Framework
Windows Vista (Windows VI)
Open Source
Transaktion
Dateisystem
System.IO
Exception
Methode
Wrapper
Stream
Microsoft Distributed Transaction Coordinator (MSDTC)
New Technology File System (NTFS)
Application Programming Interface (API)
Kernel Transaction Manager (KTM)
Datenzugriffsschicht (DZS)
Beratung & Support
Anfrage für Beratung/Consulting zu Transactional File System TxF
Gesamter Beratungsthemenkatalog
Technischer Support zum Transactional File System TxF
Schulungen zu diesem Thema
Anfrage für eine individuelle Schulung zum Thema Transactional File System TxF
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr