Отследить, почему транзакция переходит в DTC - PullRequest
12 голосов
/ 03 февраля 2009

Есть ли способ точно определить, почему System.Transaction TrasactionScope передается в DTC? Мы столкнулись с одним из наших компонентов, которые, кажется, обостряют транзакцию, в то время как все другие компоненты (которые кажутся обманчиво похожими) не обостряются.

Предоставляется ли какая-либо информация о причинах эскалации и как их можно найти и наблюдать? SQL Profiler? Лог-файлы? Или мне не повезло на этом?

ОБНОВЛЕНИЕ: я использую SQL Server 2005 для получения информации

Ответы [ 2 ]

9 голосов
/ 03 февраля 2009

При использовании TransactionScope транзакция увеличивается, когда приложение открывает второе соединение (даже с той же базой данных) в рассматриваемой области транзакции.

7 голосов
/ 03 февраля 2009

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

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

...