Using Transactional NTFS (TxF) with SQL Server in .NET

I just stumbled across the very new Transactional NTFS (TxF) .NET managed wrapper by Pietro Partescano and gave it a try.

TxF offers transactional protection for NTFS operations:

  • Atomic operations on single files.
    Makes writing files more robust.
  • Transactions for multi-file operations.
    Concurrent readers only see committed operations.
    Works with remote file shares too.
  • The TxF resource manager can participate in heterogeneous distributed transactions.
    Ex: spanning NFTS, SQL Server and MSMQ operations.

MSDN: About Transactional NTFS
MSDN Magazine article: Enhance Your Apps With File System Transactions
Wikipedia: Transactional NTFS

Sample using NTFS Transaction with SQL Server

CREATE TABLE [dbo].[DocumentLink](
	[DocumentID] [uniqueidentifier] ROWGUIDCOL primary key  NOT NULL,
	[Name] [varchar](255) UNIQUE  NOT NULL,
	[Type] [varchar](5) NULL)
Imports System.Transactions

Module Module1
    Private _testFolderPath = IO.Path.Combine(IO.Directory.GetParent(My.Application.Info.DirectoryPath).Parent.FullName, "TestFiles")

    Sub Main()
            Using tsc As New TransactionScope(TransactionScopeOption.RequiresNew,
                                              New TransactionOptions With {.IsolationLevel = IsolationLevel.ReadCommitted}),
                  DB As New FileStreamTestEntities

                'Create file in NTFS
                Dim filePath = IO.Path.Combine(_testFolderPath, "TestFile1.txt")
                Dim content = System.Text.Encoding.UTF8.GetBytes("My test data")
                Dim fileHandle = TxF.File.CreateAndWriteFile(filePath, TxF.File.CreationDisposition.CreatesNewfileAlways, content)

                'Insert link to file in database table
                DB.DocumentLinks.Add(New DocumentLink With {.DocumentID = Guid.NewGuid, .Name = filePath})

            End Using
        Catch ex As Exception
        End Try
    End Sub

End Module

Über Peter Meinl

Perpetual Traveller, IT Consultant
Dieser Beitrag wurde unter Computers and Internet abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

Du kommentierst mit Deinem Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )


Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )


Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s