Почему транзакция не вызывает исключение TimeoutException? - PullRequest
0 голосов
/ 25 февраля 2011

1) В следующем примере тайм-ауты TransactionScope TS1 на стороне клиента. Но если TS1 не наберет Complete() и не проголосует за принятие транзакции, исключение не выдается:

TimeSpan timeout = TimeSpan.FromSeconds(2);

using (TransactionScope scope1 = new TransactionScope(TransactionScopeOption.RequiresNew, timeout))
{
    proxy.GetAnimal(16); // returns after 10 seconds
    Thread.Sleep(6000);
}

Я понимаю, что без вызова Complete () транзакция не будет зафиксирована, но я не понимаю, почему исключение тайм-аута не должно создаваться независимо от того, зафиксирована транзакция или нет? *

2) Даже если proxy.GetAnimal() вызывается после истечения времени ожидания транзакции, вызов все равно будет успешным:

    TimeSpan timeout = TimeSpan.FromSeconds(2);
    using (TransactionScope scope1 = new TransactionScope(TransactionScopeOption.RequiresNew, timeout)) 
    {
        proxy.GetAnimal(); // returns after 10 seconds
        Thread.Sleep(6000); 
        proxy.GetAnimal(); // shouldn't this call cause an exception?
    }

Разве исключение не имеет смысла?

1 Ответ

1 голос
/ 26 февраля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...