EnterpriseServicesInteropOption для вызова .NET в COM+

Мне нужно выполнить некоторые обновления базы данных, часть из которых будет проходить через компонент COM+ (который будет включен для транзакций), а другие — через стандартный LINQ to SQL, и я хочу, чтобы оба обновления были частью одной транзакции.

Я намерен использовать TransactionScope для синхронизации транзакций .NET и COM+. Однако, прочитав документацию по EnterpriseServicesInteropOption, я все еще не уверен в различиях между Automatic и Full.

Могу ли я использовать Автоматический в моем случае?

Я чувствую, что могу получить ответ RTFM, но я нашел эту статью неясной: http://msdn.microsoft.com/en-us/library/ms229974(VS.80).aspx

Любые более четкие ресурсы, которые есть у людей, также будут оценены


person MattH    schedule 28.05.2009    source источник


Ответы (1)


Разница в том, что Полный всегда создает контекст транзакции COM+, а Автоматический создает его при необходимости.
Таким образом, в случае, когда требуется COM+ Transac, основное различие заключается в том, когда приложение получает удар по производительности, в начале транзакции (с полным) или в тот момент, когда это необходимо (с автоматическим)

Если вы уверены, что вам понадобится транзакция COM+, выбирайте Full, но... не верьте мне:
Проверьте! много!!

person Eduardo Molteni    schedule 28.05.2009
comment
Однако способность Automatic создавать «когда это необходимо» является частью того, что мне не ясно. Вы говорите, что это произойдет, как только я вызову свой объект COM+? Заметит ли .NET, что это объект COM+ с поддержкой транзакций, и что существует активная транзакция, и скажет «Ах!» Транзакция EntepriseServices необходима сейчас, или фактический метод, который я вызываю в объекте COM+, должен будет создать свою собственную транзакцию, чтобы реализовать общую транзакцию, необходимую для обоих. - person MattH; 28.05.2009
comment
Насколько мне известно, если объект COM+ помечен как «Требуется или использует существующую транзакцию», транзакция будет создана, как только вы вызовете объект. Не знаю точных сроков, но, как я вам говорю, проверьте сами - person Eduardo Molteni; 28.05.2009
comment
Хорошо, спасибо :) Я конечно протестирую, но к сожалению компонент COM+ еще не доставлен, отсюда и моя привередливость. - person MattH; 01.06.2009