Windows - статьи

       

Контекст объекта COM+


Для каждого объекта транзакции сервер транзакций автоматически создает специальный объект, который носит название объект контекста транзакции или контекст объекта COM+. Функциональность контекста обеспечивается интерфейсом IobjectContext.

Два метода интерфейса определяют способ выхода объекта из транзакции.

Метод SetComplete сообщает транзакции, что он готов к завершению своей работы в транзакции.

Использование метода SetAbort означает, что исполнение кода объекта привело к возникновению обстоятельств, препятствующих успешному завершению транзакции.

После использования любого из этих двух методов объект завершает свое участие в транзакции.

Методы EnableCommit и DisableCommit сообщают о текущем состоянии объекта. Метод EnableCommit сообщает, что объект позволяет завершить транзакцию, хотя его функционирование еще не завершено.


Рис. 1. Роль контекста объекта COM+

Вызов метода DisableCommit показывает, что в настоящий момент текущее состояние объекта не позволяет завершить транзакцию. При попытке завершить транзакцию после вызова этого метода, транзакция будет прервана.

При помощи перечисленных методов объект контекста обеспечивает среду COM+ информацией о состоянии объекта транзакции.

Например, распределитель ресурсов может использовать контекст объекта COM+ для обеспечения сервисов на основе транзакций. Пусть объект выполняется внутри транзакции, которая зарезервировала соединение с базой данных, используя провайдер ADO. Это соединение автоматически организует транзакцию. Все изменения в базе данных, использующие такое соединение, становятся частью транзакции и затем либо принимаются, либо откатываются. Дополнительно разработчики могут использовать несколько вспомогательных методов интерфейса IobjectContext.



Содержание раздела