我需要一些澄清MS-DTC将如何在下面MSDTC和隔离级别
1)我有一个TransactionScope内的多个连接(隔离级别定的场景表现 - ReadCommited),这将带来MS-DTC立即采取行动:
a)MS-DTC会自动将隔离级别更改为SERIALIZABLE。 (Imp)如果上面的答案是肯定的,我已经实现了基于Row版本化的隔离级别,即除了TransactionScope,我还启用了READ_COMMITTED_SNAPSHOT数据库选项“ON”,它是否仍然有效,意味着它会支持“SERIALIZABLE”隔离级别。
void OuterMethod() {
TransactionOptions tso = new TransactionOptions();
tso.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
using (TransactionScope tx = new TransactionScope(TransactionScopeOption.RequiresNew, tso)) {
InnerMethod("select * from testtable");
InnerMethod("update testtable set col1 = N'new value'");
tx.Complete();
}
}
static void InnerMethod(string sqlText) {
using (SqlConnection conn = SqlConnection(connStr)) {
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.ExecuteNonQuery();
}
}
感谢
其他答案详细 – Buzz 2009-11-27 08:36:05