Поделиться через


Принести собственную транзакцию (BYOT)

BYOT позволяет создать компонент с помощью или наследовать внешнюю транзакцию. То есть компонент, который еще не имеет связанной транзакции, может получить транзакцию. В настоящее время транзакции ВСП являются автоматическими; Определяется ли экземпляр компонента в транзакции во время создания. Атрибуты транзакций компонента и его создателя определяют, какая транзакция связана с заданным экземпляром. Во всех случаях МЕТОДЫ БЕЗОПАСНОСТИ управляют временем существования транзакций. COM+ расширяет это, чтобы разрешить настройку произвольной предварительно существующей транзакции DTC или TIP в качестве свойства транзакции контекста нового компонента. Это позволяет настроить компоненты, связанные с транзакциями, время существования которых контролируется монитором TP, OTS или СУБД.

Примечание.

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

 

Интерфейсы для транзакций BYOT включают интерфейс ICreateWithTransactionEx и интерфейс ICreateWithTipTransactionEx. Интерфейс ICreateWithTransactionEx создает объект, который включен в транзакцию вручную. Интерфейс ICreateWithTipTransactionEx создает объект, который включен в ручную транзакцию с помощью протокола Интернета транзакций (TIP).

Наследование ручных транзакций