TransactionScope и «долговременные ресурсы» - PullRequest
6 голосов
/ 31 января 2012

Быстрый вопрос об объекте TransactionScope.Обнаружил это в Интернете:

Когда вы обращаетесь к своему первому диспетчеру ресурсов длительного пользования, создается легкая транзакция с фиксацией для поддержки одной транзакции.Когда вы получаете доступ ко второму диспетчеру долговременных ресурсов, транзакция превращается в распределенную транзакцию.

Это выглядит хорошо, но я не понимаю, что именно является "долговременным ресурсом".Я знаю, что TransactionScope работает только с SQL Server 2005 и выше, поэтому, если мне нужно получить доступ к SQL Server 200, это будет невозможно?Как насчет текстового файла на диске?Я всегда слышал, что вы не можете контролировать транзакции, когда это связано с доступом к диску.Может быть, это отличается от этого объекта?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 31 января 2012

В этой ссылке обсуждаются различия между менеджерами долговременных и энергозависимых ресурсов.

Просто для пояснения - TransactionScopes будет работать с более ранними версиями SQL , однако облегченный менеджер транзакций работает только для 2005+. DTC потребуется для транзакций в SQL 2000.

Существует также поддержка транзакционных файловых систем (Vista и более поздние) - посмотрите здесь .

3 голосов
/ 24 мая 2015

Менеджеры ресурсов бывают двух типов

  • Длительный : транзакции надежны даже при сбоях системы. Менеджеры ресурсов запоминают состояние транзакции. Если система остановлена ​​в промежутке, то после перезапуска Транзакция может перейти из своего предыдущего состояния. например, СУБД SQL Server и MSMQ.
  • Летучий : Не устойчив к системным сбоям, например Это транзакционная реализация некоторых основных классов .Net.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...