TransactionScopeその後。

なるほど、やっと理解しました。

古くはMTS、System.EnterpriseServicesと同様の総投票製で最終的なトランザクションの結果が確定するようですね。

id:re_guzyさんにコメントでも頂きましたが、
非常に端的に説明して頂きました。ありがとうございます。


そもそも、トランザクションが自動昇格する可能性がある以上、
それぞれのusingブロックで区切られた中身が、
いつ分散トランザクションになるか分らない…という事ですね。


昨日のコードで言うと、外側のusingブロックが始まった時点では、
ローカルトランザクションだったとしても、
内側のusingブロック内で、分散トランザクションに自動昇格する可能性がある以上、
総投票製的仕様で動作しないと、まぁ、不都合が多いのですね。