.NETでトランザクション処理をコーディングする際、TransactionScopeはとても便利ですよね。
*** MSDTCの設定 [#sc0a2e72]
- TransactionScopeを使うと、スタンドアローンサーバでもMSDTCサービスが必要か? どうしても、分散トランザクションとして処理されるのか?
- 実は、''TransactionScope内で利用されるSqlConnectionオブジェクトが単一の場合、Local Transactionとして処理される''
- つまり、単一のSqlConnectionオブジェクトを使いまわすようにcodingすれば、MSDTCサービスは不要である
-- 「接続文字列が同一」ではないことに注意。
- 問題は、「上記のような規約を遵守することで、コーディングがどの程度制限され、面倒になるか」である
- 開発時に、SqlConnectionの意識を希薄にし、オブジェクトの持ち回しを不要にし、TransactionScopeの実装箇所について、いろいろ考慮しなくてもよい、というのは結構なメリット。ローカルトランザクションであってもMSDTCを利用する、という判断もアリかと。
RIGHT:[[ネタ元:http://www.atmarkit.co.jp/fdotnet/vblab/vsdbprog_08/vsdbprog_08_04.html]]