Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы устанавливаете согласованные и выполненные флаги, вызывая методы в интерфейсах IObjectContext или IContextState. Стратегии, используемые этими двумя интерфейсами, значительно отличаются. IObjectContext имеет четыре метода, которые связывают согласованные и выполненные флаги вместе в уникальных сочетаниях, в то время как IContextState имеет два метода, которые позволяют задать каждый флаг независимо. Методы IObjectContext также предоставляются через объект ObjectContext.
Для независимого управления каждым флагом IContextState предоставляет метод для установки флага согласованности в True или False и метод для установки флага завершения в True или False. Эти методы - SetMyTransactionVote и SetDeactivateOnReturn, соответственно. Интерфейс IContextState также включает методы для получения текущего значения каждого флага.
При установке метода SetMyTransactionVote в значение TxCommit, COM+ проверяет наличие транзакции. Если COM+ не обнаруживает транзакцию, она создает ошибку, которую можно записать в файле журнала. Например, предположим, что кто-то непреднамеренно настраивает атрибут транзакции компонента в значение Not Supported, но ожидается, что он должен быть задан как "Обязательный". Задав SetMyTransactionVote = TxCommit , можно определить конфликт и принять меры.
В следующей таблице описаны вызовы метода, которые можно использовать для установки флагов согласованности и завершения.
| Согласованный флаг | Флаг готовности | Метод IObjectContext | Методы IContextState |
|---|---|---|---|
| Истина |
Неверно |
EnableCommit |
SetDeactivateOnReturnbDeactivate = Ложь |
| Неверно |
Ложь |
DisableCommit |
SetMyTransactionVotetxVote = TxAbort SetDeactivateOnReturn bDeactivate = False |
| Ложь |
Истина |
SetAbort |
SetMyTransactionVotetxVote = TxAbort SetDeactivateOnReturnbDeactivate = True |
| Истина |
Истина |
SetComplete |
SetMyTransactionVotetxVote = TxCommit Step 2: SetDeactivateOnReturnbDeactivate = True |
Примечание.
Свойство auto-done, заданное на уровне метода, может повлиять на то, как заданы консистентные и выполненные флаги. Дополнительные сведения о свойстве auto-done см. в разделе "Включение автоматического выполнения" для метода и настройка готового бита.