Поделиться через


Объекты Диспетчера транзакций

Основной целью объекта диспетчера транзакций является создание и обслуживание потока журнала Common Log File System (CLFS), который KTM использует для записи сведений о состоянии транзакций.

Объект диспетчера транзакций также содержит значение виртуальных часов, которое KTM поддерживает и использует для упорядочивания сведений в потоке журнала объекта.

KTM предоставляет набор подпрограмм объектов диспетчера транзакций, которые могут вызывать компоненты TPS в режиме ядра. KTM также предоставляет аналогичный набор подпрограмм пользовательского режима, которые могут вызывать приложения в пользовательском режиме. Дополнительные сведения о подпрограммах пользовательского режима см. в пакете SDK для Microsoft Windows.

KTM создает объект диспетчера транзакций при вызове ZwCreateTransactionManager. Как правило, каждый диспетчер ресурсов в TPS создает объект диспетчера транзакций. Но вы также можете создать TPS, в котором несколько диспетчеров ресурсов совместно используют один объект диспетчера транзакций.

Компоненты TPS могут открывать дополнительные дескрипторы для существующего объекта менеджера транзакций, вызвав ZwOpenTransactionManager. Например, если TPS имеет несколько диспетчеров ресурсов, которые совместно используют один объект диспетчера транзакций, один диспетчер ресурсов вызывает ZwCreateTransactionManager , а затем передает GUID объекта другим диспетчерам ресурсов, чтобы они могли вызывать ZwOpenTransactionManager.

Диспетчеры ресурсов закрывают дескрипторы к объектам диспетчера транзакций, вызывая ZwClose.

Операционная система удаляет объект после закрытия последнего дескриптора и KTM выпустила все его ссылки на объект.