« Visual Studio 2005 SP1 Update for Vista リリース | メイン | SQL Server 2005 Express Edition のありがたみ »

TransactionScopeとMSDTC

FAQ なネタですが。

TransactionScope (System.Transactions 名前空間) を使う時には、MSDTC (Distributed Transaction Coordinator) を起動しておきましょう。
管理ツールのサービスを起動して開始します。
なんなら自動起動にしてしまいましょう。

こいつがデフォルトで停止になっています。
それを忘れて、トランザクションでSqlExceptionが出た時しばらく悩みました。
(例外のメッセージをちゃんと読みましょう>自分)

とはいえ、これだけのために DTC なんてのを動かしておきたくないということもありそう。
そもそもその辺の理由でデフォルトでDTCがオフになってるんでしょうし。
そういう場合はやっぱり SqlTransaction を使うことになるんでしょうね。

MSさん的には TransactionScope を推奨しています
それに TableAdapter を使うときには(たいてい使うんでしょうけど)、TransactionScope はトランザクション周りのコードを減らせて便利だし、ささっとコーディングをすまそうと思うと他の手が見つからないのも事実。

とはいえ、そうも行かない時もありそうだし、ちょっと実験してみます(今日はやらない /w)。

新しいマシンを調達したのでアプリやら開発ツールやらのインストールが終わって、さて開発。
・・・で、このトラブルを自ら招きました。

About

2007年03月24日 23:46に投稿されたエントリーのページです。

ひとつ前の投稿は「Visual Studio 2005 SP1 Update for Vista リリース」です。

次の投稿は「SQL Server 2005 Express Edition のありがたみ」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.34