Перечисление COMAdminTxIsolationLevelOptions (comadmin.h)
Указывает уровень изоляции, который будет использоваться для транзакций.
Синтаксис
typedef enum COMAdminTxIsolationLevelOptions {
COMAdminTxIsolationLevelAny = 0,
COMAdminTxIsolationLevelReadUnCommitted,
COMAdminTxIsolationLevelReadCommitted,
COMAdminTxIsolationLevelRepeatableRead,
COMAdminTxIsolationLevelSerializable
} ;
Константы
COMAdminTxIsolationLevelAny Значение: 0 Поддерживается любой уровень изоляции. Подчиненный компонент, имеющий этот уровень изоляции, всегда использует тот же уровень изоляции, что и его непосредственный компонент вышестоящий. Если для корневого объекта в транзакции настроен уровень изоляции COMAdminTxIsolationLevelAny, его уровень изоляции становится COMAdminTxIsolationLevelSerializable. |
COMAdminTxIsolationLevelReadUnCommitted Транзакция может считывать любые данные, даже если они изменяются другой транзакцией. Во время транзакции можно вставить новые данные любого типа. Это наименее безопасный уровень изоляции, но обеспечивает наивысший параллелизм. |
COMAdminTxIsolationLevelReadCommitted Транзакция не может считывать данные, которые изменяются другой транзакцией, которая не была зафиксирована. Во время транзакции можно вставить новые данные любого типа. Это уровень изоляции по умолчанию в Microsoft SQL Server. |
COMAdminTxIsolationLevelRepeatableRead Данные, считанные текущей транзакцией, не могут быть изменены другой транзакцией, пока текущая транзакция не завершится. Во время транзакции можно вставить новые данные любого типа. |
COMAdminTxIsolationLevelSerializable Данные, считанные текущей транзакцией, не могут быть изменены другой транзакцией, пока текущая транзакция не завершится. Невозможно вставить новые данные, которые повлияют на текущую транзакцию. Это самый безопасный уровень изоляции, используемый по умолчанию, но допускает самый низкий уровень параллелизма. |
Комментарии
Это перечисление используется для настройки уровня изоляции транзакций для компонентов, использующих транзакции. Он также используется для настройки уровня изоляции для использования службы транзакций без компонентов путем передачи в качестве параметра в IServiceTransactionConfigBase::IsolationLevel. Этот метод вызывается через CServiceConfig либо для работы, отправленной с помощью действия, созданного CoCreateActivity , либо для работы, заключенной между вызовами CoEnterServiceDomain и CoLeaveServiceDomain.
Если нижестоящий компонент настроен с более высоким уровнем изоляции, чем компонент вышестоящий, и пытается завербовать транзакцию, возникает ошибка и транзакция прерывается.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Верхняя часть | comadmin.h |