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


Настройка согласованных и выполненных флагов

Вы устанавливаете согласованные и выполненные флаги, вызывая методы в интерфейсах IObjectContext или IContextState. Стратегии, используемые этими двумя интерфейсами, значительно отличаются. IObjectContext имеет четыре метода, которые связывают согласованные и выполненные флаги вместе в уникальных сочетаниях, в то время как IContextState имеет два метода, которые позволяют задать каждый флаг независимо. Методы IObjectContext также предоставляются через объект ObjectContext.

Для независимого управления каждым флагом IContextState предоставляет метод для задания согласованного флага значение True или False, а метод для задания готового флага значение True или False. Эти методы: SetMyTransactionVote и SetDeactivateOnReturn соответственно. Интерфейс IContextState также включает методы для получения текущего значения каждого флага.

При установке значения метода SetMyTransactionVote значение TxCommit COM+ проверяет наличие транзакции. Если COM+ не обнаруживает транзакцию, она создает ошибку, которую можно записать в файле журнала. Например, предположим, что кто-то непреднамеренно настраивает атрибут транзакции компонента в значение Not Supported, но ожидается, что он должен быть задан как "Обязательный". Задав SetMyTransactionVote = TxCommit , можно определить конфликт и принять меры.

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

Согласованный флаг Флаг "Готово" Метод IObjectContext Методы IContextState
Истина
False
EnableCommit
SetMyTransactionVote txVote = TxCommit
SetDeactivateOnReturn bDeactivate = False
False
False
DisableCommit
SetMyTransactionVote txVote = TxAbort
SetDeactivateOnReturn bDeactivate = False
False
Истина
SetAbort
SetMyTransactionVote txVote = TxAbort
SetDeactivateOnReturn bDeactivate = True
Истина
Истина
SetComplete
SetMyTransactionVote txVote = TxCommit
SetDeactivateOnReturn bDeactivate = True

Примечание.

Свойство auto-done, заданное на уровне метода, может повлиять на то, как заданы согласованные и выполненные флаги. Дополнительные сведения о свойстве auto-done см. в разделе "Включение автоматического выполнения" для метода и настройка готового бита.