Kdy použít transakční souborový systém NTFS
Aplikace může během neočekávaných chybových podmínek zachovat integritu dat na disku pomocí transakčního systému SOUBORŮ NTFS (TxF). Obecně platí, že aplikace by měla zvážit použití TxF, pokud aplikace vyprázdní soubory a používá jiné techniky pro zachování integrity dat. TxF může lépe fungovat a zjednodušit kód zpracování chyb aplikace a zároveň zlepšit obnovení a spolehlivost chyb. V následujících částech tohoto tématu najdete příklady scénářů použití TxF.
Aktualizace souboru
Aktualizace souboru je běžná a obvykle jednoduchá operace. Pokud ale systém nebo aplikace selže, když aplikace aktualizuje informace na disku, může být výsledek katastrofický, protože uživatelská data mohou být poškozena operací aktualizace souboru, která je částečně dokončena. Robustní aplikace často provádějí složité sekvence kopií souborů a přejmenování souborů, aby se zajistilo, že v případě selhání systému nebudou data poškozena.
TxF usnadňuje aplikaci ochranu operací aktualizace souborů před selháním systému nebo aplikace. Pokud chcete soubor bezpečně aktualizovat, aplikace soubor otevře v transakčním režimu, provede potřebné aktualizace a pak potvrdí transakci. Pokud systém nebo aplikace během aktualizace souboru selže, TxF automaticky obnoví soubor do stavu, který měl před zahájením aktualizace souboru, což zabraňuje poškození souboru.
Aktualizace více souborů
TxF je ještě důležitější, když jedna logická operace ovlivňuje více souborů. Pokud například chcete použít nástroj k přejmenování jedné ze stránek HTML nebo ASP na webu, dobře navržený nástroj opraví také všechny odkazy, aby používaly nový název souboru. Během této operace však selhání způsobí, že web zůstane v nesourodém stavu, přičemž některé odkazy stále směřují na starý název souboru. Provedením operace přejmenování souboru a operace opravy propojení jedinou transakcí TxF zajistí, že přejmenování souboru a oprava propojení proběhne úspěšně nebo selže jako jedna operace.
Konzistentní souběžné aktualizace
TxF izoluje souběžné transakce. Pokud aplikace otevře soubor pro transakční čtení, zatímco jiná aplikace má stejný soubor otevřený pro transakční aktualizaci, TxF izoluje účinky těchto dvou transakcí od druhé. Jinými slovy, transakční čtečka vždy zobrazuje jednu konzistentní verzi souboru, i když je tento soubor v procesu aktualizace jinou transakcí.
Aplikace může tuto funkci použít k tomu, aby zákazníci mohli zobrazovat soubory, zatímco ostatní zákazníci aktualizují. Například transakční webový server může poskytnout jeden konzistentní zobrazení souborů, zatímco jiný nástroj současně aktualizuje tyto soubory.
Poznámka
TxF nepodporuje souběžné aktualizace více zapisovačů v různých transakcích. TxF podporuje pouze jeden zapisovač s více souběžnými a konzistentními čtečkami.
Koordinace s dalšími správci prostředků, kteří provádějí transakce
Transakce používané s transactovanými systémy souborů lze také použít s transakčním registrem. Aktualizace souboru a registru jsou koordinovány s jedinou transakcí.
Pomocí transakcí DTC (Distributed Transaction Coordinator) nebo System.Transactions lze aktualizace sql, MSMQ a dalších transakčních prostředků koordinovat s aktualizacemi transakčních souborů. Další informace naleznete v DTC IKernelTransaction.
Nepodporované scénáře
TxF nepodporuje následující scénáře transakcí:
- Transakce na síťových svazcích, například ve sdílených složkách. Protokoly CIFS/SMB nepodporují TxF.
- Transakce v jakémkoli jiném systému souborů než NTFS.
- Transakce s soubory uloženými v mezipaměti ukládáním do mezipaměti na straně klienta.
- Přístup k souborům pomocí ID objektů
- Jakýkoli scénář sdíleného autora
- Jakákoli situace, kdy je soubor otevřen po delší dobu (dny nebo týdny).