TransactionScope クラス (System.Transactions)
2012年3月14日 (水) 00:46時点におけるimported>Administratorによる版 (System.Transactions.TransactionScopeをTransactionScope クラス (System.Transactions)へ移動)
TransactionScope クラスは、コード ブロックをトランザクションにします。 このクラスは継承できません。
- 名前空間: System.Transactions
- アセンブリ: System.Transactions (System.Transactions.dll 内)
設定
TransactionScopeクラスのコンストラクタで明示的に各種トランザクション設定を指定することもできるが、面倒なのでApp.configやWeb.configで設定しておいた方がいい。
タイムアウト
<configuration>
<system.transactions>
<!-- トランザクションがタイムアウトするまでの時間。
デフォルトが何秒かは知らなないが、負荷テストですぐにタイムアウトエラーが
発生したので数秒だと思う。
-->
<defaultSettings timeout="00:03:00"/>
</configuration>
なお、Machine.configに上記timeoutに設定できる最大値(maxTimeout)が設定されいる。 たちの悪いことに、timeout=30分、maxTimeout=1分と設定しても、実行時にtimeoutの値が強制的に1分(maxTimeoutの値)に置き換えられるだけでエラーにはならないのでハマった。