Просмотр некоторого кода, который содержит множество косвенно вложенных транзакций.Я хотел бы знать, как тайм-ауты обрабатываются во вложенных транзакциях.Пример кода
void RootMethod()
{
//default timeout is 60 seconds
using(TransactionScope scope = new TransactionScope())
{
/* Perform transactional work here */
SomeMethod();
scope.Complete();
}
}
void SomeMethod()
{
//set timeout to 30 seconds
TimeSpan timeout = TimeSpan.FromSeconds(30);
using(TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, timeout))
{
/* Perform transactional work here */
scope.Complete();
}
}
Состояния MSDN - Во вложенной иерархии TransactionScope тайм-аут представляет собой объединение всех тайм-аутов.По сути, наименьший тайм-аут из всех областей в иерархии имеет приоритет.
В первом утверждении указано объединение всех тайм-аутов, но во втором утверждении указано, что он наименьший из всех областей.Правильно ли я понимаю, что приведенный выше код с вложенной областью имеет время ожидания по умолчанию 30 секунд, а не 90?