Я использую TransactionScope
для пакетной вставки и обновления. Проблема в том, что я получаю исключения тайм-аута для 30-минутной операции, даже когда я установил тайм-аут TransactionScope
на один час.
Также после исключения вставляет кажущееся случайным количество записей пакета. Например, последняя операция имела 12440 вставок, а после тайм-аута в таблицу было вставлено 7673 записей.
Тайм-аут SqlConnection
и SqlCommand
оба установлены на int.MaxValue
.
Что я делаю не так?
Вот мой код:
using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromHours(1)))
{
try
{
using (db = new DB())
{
//operations here
}
}
catch (Exception ex)
{
throw new Exception("DB Error:\r\n\r\n" + ex.Message);
}
transaction.Complete();
} // <--- Exception here: Transaction aborted (Inner exception: Timeout)