В примере важно отразить все компоненты, участвующие в транзакции. Для банковской транзакции подойдет следующий пример.
Клиент с помощью Web-обозревателя подключается к Web-узлу банка. На этой стадии используются следующие компоненты: клиент, сеть и приемник запросов (в этом качестве выступает соответствующий компонент Microsoft Transaction Server).
В течение нескольких минут после первого запроса еще 100 пользователей точно также подключаются к Web-узлу банка. Для обработки их запросов Microsoft Transaction Server использует следующие компоненты: приемник и диспетчеры очереди, соединений, контекста и защиты.
Приемник управляет входящими соединениями. Диспетчер очереди отвечает за очередность обслуживания запросов. Диспетчер соединений отслеживает работу каждого клиента. Диспетчер контекста регистрирует клиентов. Диспетчер зашиты предотвращает несанкционированный доступ клиентов к данным и приложениям.
Пользователь переводит деньги с одного счета на другой, так что операция затрагивает несколько баз данных. Для выполнения транзакции Microsoft Transaction Server привлекает пул потоков, процедуры бизнес-логики, диспетчер конфигурации, диспетчер подключения к БД, компоненты диспетчера синхронизации и собственно данные.
Пул потоков организует потоки, необходимые для выполнения клиентской операции. Процедуры бизнес-лотки выполняют дебитные, кредитные и трансферные функции. Диспетчер синхронизации координирует транзакцию между базами данных. Диспетчер конфигурации управляет потоками пула и другими ресурсами. Диспетчер подключения к БД выполняет необходимые подключения к конкретным базам данных.
В качестве примера экстренной ситуации возможен следующий: соединения между SQL-серверами разрываются до завершения транзакции. В этом случае диспетчер синхронизации регистрирует незавершенную транзакцию и восстанавливает исходное состояние контекста.