Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В модели программирования COM+ вы можете разработать компоненты, чтобы сделать то, что они делают лучше всего, позволяя бизнес-логике или устанавливать подключение к базе данных, и полагаться на платформу обработки транзакций Microsoft Windows для автоматизации транзакций.
Запуск транзакции
COM+ автоматически запускает транзакцию при возникновении любого из следующих условий:
- Если нетранзакционный клиент вызывает компонент, который требует транзакции или новой транзакции.
- Когда транзакционный клиент вызывает компонент, требующий новой транзакции.
Если COM+ определяет, что объект должен иметь новую транзакцию, он начинает транзакцию сначала, а затем помещает объект в него. Процесс включает следующие шаги.
- COM+ создает объект контекста, задает активации JIT и синхронизации атрибуты "Обязательный" и задает согласованные и выполненные флаги значение True и False соответственно.
- COM+ взаимодействует с координатором распределенных транзакций (DTC), чтобы начать транзакцию. DTC координирует физическую транзакцию.
- DTC создает идентификатор транзакции и передает его обратно в COM+. Идентификатор транзакции устанавливает границу транзакции. Все объекты, участвующие в транзакции, имеют одинаковый идентификатор.
- Когда клиент создает объект, COM+ активирует его в пределах границы транзакции.
Завершение транзакции
COM+ завершает автоматическую транзакцию путем фиксации или прерывания ее при возникновении одного из следующих условий:
- Корневой объект транзакции завершает работу, и COM+ освобождает его. После деактивации корневого объекта транзакция пытается закоммитить.
- Клиент освобождает корневой объект. Без ссылки корневой объект деактивируется и транзакция пытается завершиться.
- Транзакция превышает лимит времени ожидания. Все связанные с транзакцией объекты деактивируются автоматически, если транзакция не зафиксирована в течение периода ожидания. Время ожидания транзакции по умолчанию — 60 секунд.
Связанные разделы
-
Ускорение транзакций с помощью уведомления корневого объекта
-
завершение автоматической транзакции путем вызова setComplete