TransactionScope: это поправилось?

Шаблоны разработки в Динамическом программировании Peter Norvig имеют вдумчивое покрытие этой общей темы, хотя о 'динамических' языках вместо 'функционального' (существует перекрытие).

5
задан Brian MacKay 21 July 2009 в 13:24
поделиться

2 ответа

У Рика Стрела есть отличная статья о масштабах транзакций и LINQ to SQL здесь . Его контекст больше похож на LINQ to SQL, но я думаю, что есть несколько применимых принципов, которые могут помочь вам решить ваш вопрос.

EDIT: чтобы более конкретно ответить на ваш вопрос, вот что Strahl должен сказать о TransactionScope:

Традиционно TransactionScope был .NET-оболочкой для координатора распределенных транзакций (DTC), но его функциональность несколько расширилась. Одна из проблем заключается в том, что DTC довольно дорого обходится с точки зрения использования ресурсов и требует, чтобы служба DTC действительно работала на машине (еще одна служба, которая особенно неприятна при установке клиента).

Однако недавние обновления TransactionScope а драйверы клиента SQL Server позволяют использовать класс TransactionScope и обеспечивают простоту использования, не требуя DTC, если вы работаете с одной базой данных и с одной согласованной строкой подключения

8
ответ дан 13 December 2019 в 22:13
поделиться

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

Вот некоторая информация о TransactionScope и где искать дополнительную информацию: Всякий раз, когда вы создаете объект TransactionScope, он запускает легкую транзакцию. Затем, пока вы используете одно соединение / ресурс, который поддерживает легкие транзакции, транзакция будет обрабатываться менеджером ресурсов, потребляя как можно меньше ресурсов с очень хорошей производительностью. Когда вы добавляете второе соединение / ресурс в область транзакции, диспетчер транзакций будет автоматически повышен до диспетчера транзакций OleTx, который может обрабатывать распределенные транзакции с использованием технологий COM + DTC. Это также произойдет с одним подключением к диспетчеру ресурсов, который не поддерживает облегченные транзакции, такие как SQL Server 7/2000, Oracle и другие СУБД.

Вот два ресурса, которые могут вам помочь:

" Пакет обновления 1 (SP1) для Microsoft Windows Server 2003 и пакет обновления 2 (SP2) для Microsoft Windows XP включают множество обновлений и изменений, связанных с безопасностью. Некоторые из этих изменений затрагивают службу координатора распределенных транзакций Microsoft (MSDTC) ". Новые функции в службе координатора распределенных транзакций в Windows Server 2003 с пакетом обновления 1 и в Windows XP с пакетом обновления 2

и

технический документ Ювала Лоуи по System.Transactions: Знакомство с System.Transactions в Microsoft .NET Framework версии 2.0

1
ответ дан 13 December 2019 в 22:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: