Будет трудным получить то, что Вы хотите алгоритмически - люди изучали цветную теорию в течение долгого времени, и они даже не знают всех правил.
Однако существуют [приблизительно 110] правила, которые можно использовать для отбора плохих цветовых комбинаций (т.е., существуют правила для сталкивающихся цветов, и выбирающий дополнительные цвета).
я рекомендовал бы, чтобы Вы посетили художественный раздел своей библиотеки и проверили книги по цветной теории получить лучшее понимание того, что является хорошим цветом, прежде чем Вы попытаетесь сделать один - кажется, что Вы даже не могли бы знать, почему определенная работа комбинаций и другие не делают.
-Adam
SQL Server 2008 может использовать несколько SQLConnection
в одном TransactionScope
без эскалации, при условии, что соединения не открываются одновременно, что приведет к появлению нескольких «физических» TCP-соединений. и поэтому требуют эскалации.
Я вижу, что некоторые из ваших разработчиков используют SQL Server 2005, а другие - SQL Server 2008. Вы уверены, что правильно определили, какие из них расширяются, а какие нет?
Наиболее очевидным объяснением может быть то, что разработчики с SQL Server 2008 - это те, кто не расширяется.
Этот код вызовет эскалацию при подключении к 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 терпит неудачу. Вы уверены, что не наоборот?
TransactionScope всегда переходит в транзакцию DTC, если вы используете доступ более чем к одному внутреннему соединению. Единственный способ, которым приведенный выше код может работать с отключенным DTC, - это если с большой вероятностью вы оба раза получите одно и то же соединение из пула соединений.
«Проблема в том, что на половине машин наших разработчиков мы можем работать с отключенным MSDTC. " Вы уверены, что он отключен;)