Надежный тест для транзакций продвижения MSDTC к распределенному?

Как я могу надежно проверить, что MSDTC способствовал транзакцию распределенной транзакции?

Это при использовании TransactionScope в .NET.

В настоящее время коллега тестирует это путем закрытия координатора на его машине - если исключение выдается, это взято в качестве доказательства, что попытка способствовать транзакции произошла. Действительно ли это - допустимый тест?

10
задан Oded 16 March 2010 в 19:58
поделиться

1 ответ

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

Еще кое-что, что вы можете сделать:

  • Вы также можете запустить SQL Profiler и в разделе Транзакции отслеживать DTCTransaction.

  • С точки зрения кода, вы можете обработать событие DistributedTransactionStarted и записать сообщение при запуске распределенной транзакции.

  • Или вы можете просто добавить сообщения журнала для регистрации System.Transactions.Transaction.Current. TransactionInformation.DistributedIdentifier перед завершением транзакции. Если значение Guid.Empty {00000000-0000-0000-0000-000000000000}, то это не распределенная транзакция, в противном случае транзакция была переведена в распределенную транзакцию.

Вы сказали, что используете SQL Server 2008. Какую версию .NET вы используете? Это 3.5? Если вы используете SQL Server 2008 и .NET 3.5 , тогда вы должны иметь возможность открывать несколько подключений (с использованием одной и той же строки подключения) к одной и той же базе данных в одной транзакции без перехода к распределенной транзакции. Чтобы это работало, вам необходимо закрыть первое соединение, прежде чем открывать второе соединение.

Если окажется, что все условия выполнены и транзакции все еще увеличиваются, я бы:

  • дважды проверил уровень совместимости с SQL Server;
  • проверил строку подключения, чтобы увидеть, отключено ли объединение;
  • проверить, чтобы увидеть, что два соединения не открываются одновременно в одной транзакции
  • выяснить, все ли транзакции продвигаются или только в определенных сценариях

ОБНОВЛЕНИЕ: Координатор распределенных транзакций (MSDTC) и транзакция FAQ объединяет большой список ресурсов MSDTC.

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

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