TransactionScope, автоматически возрастающий к MSDTC на некоторых машинах?

Будет трудным получить то, что Вы хотите алгоритмически - люди изучали цветную теорию в течение долгого времени, и они даже не знают всех правил.

Однако существуют [приблизительно 110] правила, которые можно использовать для отбора плохих цветовых комбинаций (т.е., существуют правила для сталкивающихся цветов, и выбирающий дополнительные цвета).

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

-Adam

280
задан Community 23 May 2017 в 01:33
поделиться

3 ответа

SQL Server 2008 может использовать несколько SQLConnection в одном TransactionScope без эскалации, при условии, что соединения не открываются одновременно, что приведет к появлению нескольких «физических» TCP-соединений. и поэтому требуют эскалации.

Я вижу, что некоторые из ваших разработчиков используют SQL Server 2005, а другие - SQL Server 2008. Вы уверены, что правильно определили, какие из них расширяются, а какие нет?

Наиболее очевидным объяснением может быть то, что разработчики с SQL Server 2008 - это те, кто не расширяется.

71
ответ дан 23 November 2019 в 02:00
поделиться

Этот код вызовет эскалацию при подключении к 2005.

См. Документацию на MSDN - http://msdn.microsoft.com/en -us / library / ms172070.aspx

Рекламные транзакции в SQL Server 2008

В версии 2.0 .NET Framework и SQL Server 2005, открыв второй соединение внутри TransactionScope автоматически продвигает сделка на полную распределенную транзакция, даже если оба соединения использовали идентичное соединение струны. В этом случае распределенный транзакция добавляет ненужные накладные расходы это снижает производительность.

Начиная с SQL Server 2008 и версия 3.5 .NET Framework, локальные транзакции больше не продвинут на распределенные транзакции если другое соединение открыто в транзакция после предыдущей сделка закрыта. Это требует никаких изменений в вашем коде, если вы уже использует пул соединений и участие в транзакциях.

Я не могу объяснить, почему Dev 3: Windows 7 x64, SQL2005 успешно работает, а Dev 4: Windows 7 x64 терпит неудачу. Вы уверены, что не наоборот?

31
ответ дан 23 November 2019 в 02:00
поделиться

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

«Проблема в том, что на половине машин наших разработчиков мы можем работать с отключенным MSDTC. " Вы уверены, что он отключен;)

1
ответ дан 23 November 2019 в 02:00
поделиться
Другие вопросы по тегам:

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