Delen via


Wanneer transactionele NTFS gebruiken

Een toepassing kan Transactional NTFS (TxF) gebruiken om de integriteit van gegevens op schijf te behouden tijdens onverwachte foutvoorwaarden. Over het algemeen moet een toepassing overwegen TxF te gebruiken als de toepassing bestanden leegmaken en andere technieken gebruikt om de gegevensintegriteit te behouden. TxF kan de code voor foutafhandeling van de toepassing verbeteren en vereenvoudigen en tegelijkertijd foutherstel en betrouwbaarheid verbeteren. De volgende secties in dit onderwerp bevatten voorbeelden van scenario's voor het gebruik van TxF.

Een bestand bijwerken

Het bijwerken van een bestand is een algemene en meestal eenvoudige bewerking. Als het systeem of de toepassing echter mislukt terwijl een toepassing gegevens op een schijf bijwerkt, kan het resultaat onherstelbaar zijn, omdat de gebruikersgegevens kunnen worden beschadigd door een bestandsupdatebewerking die gedeeltelijk is voltooid. Robuuste toepassingen voeren vaak complexe reeksen bestandskopieën en bestandsnamen uit om ervoor te zorgen dat gegevens niet beschadigd raken als een systeem uitvalt.

TxF maakt het eenvoudig voor een toepassing om bestandsupdatebewerkingen te beveiligen tegen systeem- of toepassingsfouten. Als u een bestand veilig wilt bijwerken, opent de toepassing het bestand in de getransacteerde modus, voert u de benodigde updates uit en voert u de transactie vervolgens door. Als het systeem of de toepassing mislukt tijdens de bestandsupdate, herstelt TxF het bestand automatisch naar de status die het had voordat de bestandsupdate begon, waardoor bestandsbeschadiging wordt voorkomen.

Updates voor meerdere bestanden

TxF is nog belangrijker wanneer één logische bewerking van invloed is op meerdere bestanden. Als u bijvoorbeeld een hulpprogramma wilt gebruiken om de naam van een van de HTML- of ASP-pagina's op een website te wijzigen, zou een goed ontworpen hulpprogramma ook alle koppelingen herstellen om de nieuwe bestandsnaam te gebruiken. Een fout tijdens deze bewerking laat de website echter in een inconsistente status, waarbij sommige van de koppelingen nog steeds verwijzen naar de oude bestandsnaam. Door de bewerking voor het wijzigen van de bestandsnaam en de koppelingsreparatie één transactie te maken, zorgt TxF ervoor dat het wijzigen van de bestandsnaam en het herstellen van de koppeling als één geheel slagen of falen.

Consistente gelijktijdige updates

TxF isoleert gelijktijdige transacties. Als een toepassing een bestand opent voor een transactionele leesbewerking terwijl een andere toepassing hetzelfde bestand heeft geopend voor een transactionele update, isoleert TxF de effecten van de twee transacties van elkaar. Met andere woorden, de transactionele lezer bekijkt altijd één, consistente versie van het bestand, zelfs terwijl dat bestand bezig is met het bijwerken van een andere transactie.

Een toepassing kan deze functionaliteit gebruiken om klanten toe te staan bestanden te bekijken terwijl andere klanten updates aanbrengen. Een transactionele webserver kan bijvoorbeeld één, consistente weergave van bestanden bieden terwijl een ander hulpprogramma deze bestanden gelijktijdig bijwerkt.

Notitie

TxF biedt geen ondersteuning voor gelijktijdige updates door meerdere schrijvers in verschillende transacties. TxF ondersteunt slechts één schrijver met meerdere gelijktijdige en consistente lezers.

 

Coördineren met andere transactionele resourcemanagers

Transacties die worden gebruikt met transactionele bestandssystemen kunnen ook worden gebruikt met het transactionele register. Updates voor het bestand en het register worden gecoördineerd met één transactie.

Door gebruik te maken van DTC-transacties (Distributed Transaction Coordinator) of System.Transactions, kunnen updates van SQL, MSMQ en andere transactionele resources worden gecoördineerd met transacted file updates. Zie de IKernelTransactionvan DTC voor meer informatie.

Niet-ondersteunde scenario's

TxF biedt geen ondersteuning voor de volgende transactiescenario's:

  • Transacties op netwerkvolumes, bijvoorbeeld op bestandsshares. TxF wordt niet ondersteund door de CIFS/SMB-protocollen.
  • Transacties op een ander bestandssysteem dan NTFS.
  • Transacties op bestanden die door client-side caching worden opgeslagen in de cache.
  • Bestandstoegang met behulp van object-id's.
  • Elk scenario voor een gedeelde schrijver.
  • Elke situatie waarin een bestand gedurende een langere periode (dagen of weken) wordt geopend.