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

Клиент с помощью Web-обозревателя подключается к Web-узлу банка. На этой стадии используются следующие компоненты: клиент, сеть и приемник запросов (в этом качестве выступает соответствующий компонент Microsoft Transaction Server).

В течение нескольких минут после первого запроса еще 100 пользователей точно также подключаются к Web-узлу банка. Для обработки их запросов Microsoft Transaction Server использует следующие компоненты: приемник и диспетчеры очереди, соединений, контекста и защиты.

Приемник управляет входящими соединениями. Диспетчер очереди отвечает за очередность обслуживания запросов. Диспетчер соединений отслеживает работу каждого клиента. Диспетчер контекста регистрирует клиентов. Диспетчер зашиты предотвращает несанкционированный доступ клиентов к данным и приложениям.

Пользователь переводит деньги с одного счета на другой, так что операция затрагивает несколько баз данных. Для выполнения транзакции Microsoft Transaction Server привлекает пул потоков, процедуры бизнес-логики, диспетчер конфигурации, диспетчер подключения к БД, компоненты диспетчера синхронизации и собственно данные.

Пул потоков организует потоки, необходимые для выполнения клиентской операции. Процедуры бизнес-лотки выполняют дебитные, кредитные и трансферные функции. Диспетчер синхронизации координирует транзакцию между базами данных. Диспетчер конфигурации управляет потоками пула и другими ресурсами. Диспетчер подключения к БД выполняет необходимые подключения к конкретным базам данных.

В качестве примера экстренной ситуации возможен следующий: соединения между SQL-серверами разрываются до завершения транзакции. В этом случае диспетчер синхронизации регистрирует незавершенную транзакцию и восстанавливает исходное состояние контекста.

Используются технологии uCoz