事务范围:如何回读已提交事务的结果

本文关键字:提交事务 结果 何回读 范围 事务 | 更新日期: 2023-09-27 17:55:41

我想在分布式事务中工作,提交它,然后能够读取结果。像这样:

using( var ts = new TransactionScope() )
{
do work on connection A
do work on connection B
ts.Complete();
}
read back work on A
read back work on B

这不能始终如一地工作,因为 TransactionScope 会在所有资源都表示它们将提交(阶段 2 开始)后立即结束,而不是它们已提交(阶段 2 结束)并且提交发生在不同的线程上。

有没有办法强制提交是同步的?或者我应该使用其他模式来回读结果?

事务范围:如何回读已提交事务的结果

通常,我希望这能起作用,因为您应该被阻止,直到提交(或回滚)。您是否可能使用避免锁定机制(nolock 等)?您始终可以在另一个可序列化事务(即第二个TransactionScope)中进行读取 - 这应该确保读取是真实的。