[C#]TransactionScopeのタイムアウト時間
トランザクションのタイムアウトは、以下のように設定できる。
① 指定しない場合は1分
using (var transaction = new TransactionScope())
{
}
② 5分
using (var transaction = new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromMinutes(5.0)))
{
}
③ 0を指定した場合は、無制限
using (var transaction = new TransactionScope(TransactionScopeOption.Required, TimeSpan.Zero))
{
}
ただし、machine.configファイルに最大値を設定しておかないと、③の場合も、最大値の初期値である、10分でタイムアウトとなる。
<configuration>
<system.transactions>
<machineSettings maxTimeout="00:30:00" />
</system.transactions>
</configuration>
TransactionManager.MaximumTimeoutで最大値の確認ができる。