Last-modified: 2008-05-06 (火) 19:46:08 (5826d)

 .NETでトランザクション処理をコーディングする際、TransactionScopeはとても便利ですよね。

MSDTCの設定

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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS