Chapter 22

Transactions

All or nothing — this is the main characteristic of a transaction. When writing a few records, either all are written, or everything will be undone. If there is even one failure when writing one record, all the other things that are done within the transaction will be rolled back.

Transactions are commonly used with databases, but with classes from the namespace System.Transactions, you can also perform transactions on volatile or in-memory-based objects such as a list of objects. With a list that supports transactions, if an object is added or removed and the transaction fails, the list action is automatically undone. Writing to a memory-based list can be done in the same transaction as writing to a database.

In Windows Vista, the file system and registry also get transactional support. Writing a file and making changes within the registry supports transactions.

In this chapter, the following topics are covered:

  • Overview of transaction phases and ACID properties
  • Traditional transactions
  • Committable transactions
  • Transaction promotions
  • Dependent transactions
  • Ambient transactions
  • Transaction isolation level
  • Custom resource managers
  • Transactions with Windows Vista and Windows Server 2008

Overview

What are transactions? Think about ordering a book from a web site. The book-ordering process removes the book you want to buy from stock and puts it in your order box, and the cost of your book is charged to your credit card. With these two actions, either both actions ...

Get Professional C# 2008 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.