Database Programming & Design


CORBA: Masterminds Object Management - часть 3


мониторных транзакционных службах. Кроме того, OTS предполагает

возможность поддержки восстанавливаемых вложенных транзакций

(если угодно, в неоднородной среде) с полным следованиям

принципам ACID (Atomicy, Consistency, Isolation, Durability) и

двухфазным протоколам фиксации.

Эффективность обработки транзакций частично связана с наличием

хорошего управления параллельным выполнением транзакций. Для этих

целей CORBA содержит отдельную спецификацию, называемую CCS

(Concurrency Control Service). Определен набор возможных

блокировок, от традиционных блокировок по чтению и записи и

заканчивая условными блокировками (intention locks). Изменяемые

блокировки (upgrade locks) позволяют программистам избегать

синхронизационных тупиков (такие блокировки могут быть как

транзакционными, так и нетранзакционными).

Работа OTS делится между клиентами и серверами. Клиенты

запрашивают транзакционные услуги, которые выполняются серверами

транзакций. В OTS определены четыре важных интерфейса: Current,

Coordinator, Resource и SubtransactionAwareResource. Интерфейс

Current позволяет программисту установить контекст транзакции; по

мере создания и уничтожения объектов в пределах жизни транзакции

контекст связывается с каждым из объектов, что позволяет брокеру

объектных заявок передавать заявки от сервисов клиента серверам,

управляющим ресурсами. Когда ORB получает ответ от

объекта-сервера, он поддерживает контекст заявки и может вернуть

данные исходному клиенту. Интерфейс Resource относится к

объектам, поддерживающим протокол двухфазной фиксации. В

транзакции может участвовать несколько объектов с интерфейсом

Resource, но каждый Resource голосует по поводу своей возможности

выполнить полученную им заявку. Если хотя бы один объект

Resource голосует против, транзакция откатывается или

затормаживается в зависимости от кода, указанного в сообщении

клиента. Для повышения эффективности в средах с одним объектом

Resource в интерфейсе Current имеется возможность использовать




- Начало -  - Назад -  - Вперед -