TransactionScope alternative without DTC

Pedre picture Pedre · Jun 28, 2012 · Viewed 10.6k times · Source

are there any alternative to transactionScope which does not need to enable DTC??

In the transaction I need to make two operations:

  1. Create one user (using membership - sql membership provider)
  2. Do one insert operation.

Answer

Henrik picture Henrik · Jun 28, 2012

TransactionScope uses the LTM - Lightweight Transaction Manager in .Net. Only if you open more than one connection in the same transaction or go between databases, should TransactionScope promote the transaction to the 2PC-based TX-manager, DTC.

For MS SQL Server 2008 and above, the DTC will become involved only if you are opening connections to different DBs. OR if you are opening connections in the same transactions from multiple threads EXCEPT if you are using DependentTransaction which is what you should enlist in your global transaction if you want to do threading.

As a side-point: I have some support for the multi-threading story in Castle.Transactions.

Side-point #2: If you use TransactionScope, make sure to declare the IsolationLevel explicitly otherwise you're serializing all your transactions (IsolationLevel.Serializable)!