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


CommittableTransaction Класс

Определение

Описывает фиксируемую транзакцию.

public ref class CommittableTransaction sealed : System::Transactions::Transaction, IAsyncResult
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
[System.Serializable]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
type CommittableTransaction = class
    inherit Transaction
    interface IAsyncResult
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type CommittableTransaction = class
    inherit Transaction
    interface IAsyncResult
[<System.Serializable>]
type CommittableTransaction = class
    inherit Transaction
    interface IAsyncResult
Public NotInheritable Class CommittableTransaction
Inherits Transaction
Implements IAsyncResult
Наследование
CommittableTransaction
Атрибуты
Реализации

Комментарии

Класс CommittableTransaction позволяет приложениям использовать транзакцию явным образом вместо неявного использования с помощью класса TransactionScope. В отличие от класса TransactionScope для фиксации или прерывания транзакции модуль записи приложения должен специально вызывать методы Commit и Rollback. Однако только создатель транзакции может зафиксировать транзакцию. Таким образом, копии фиксируемой транзакции, полученные с помощью Transaction.Clone метода , не фиксируются.

Примечание

Рекомендуется создавать неявные транзакции с помощью TransactionScope класса , чтобы контекст внешней транзакции автоматически управлялся автоматически. Также следует использовать TransactionScope классы и DependentTransaction для приложений, которым требуется использовать одну и ту же транзакцию в нескольких вызовах функций или в нескольких вызовах потоков. Дополнительные сведения об этой модели см. в разделе Реализация неявной транзакции с помощью области транзакции .

При создании CommittableTransaction не задается автоматически внешняя транзакция, которая является транзакцией, в которой выполняется код. Вы можете получить или задать внешнюю транзакцию, вызвав статическое Transaction.Current свойство глобального Transaction объекта . Дополнительные сведения о внешних транзакциях см. в разделе "Управление потоком транзакций с помощью TransactionScopeOption" статьи Реализация неявной транзакции с помощью области транзакции . Если внешняя транзакция не задана, любая операция с диспетчером ресурсов не является частью этой транзакции. Необходимо явно задать и сбросить внешнюю транзакцию, чтобы диспетчеры ресурсов работали в правильном контексте транзакции.

CommittableTransaction До фиксации все ресурсы, связанные с транзакцией, по-прежнему блокируются.

Объект CommittableTransaction нельзя использовать повторно. После фиксации или отката его нельзя использовать повторно в транзакции или задать в качестве текущего контекста внешней транзакции.

Конструкторы

CommittableTransaction()

Инициализирует новый экземпляр класса CommittableTransaction.

CommittableTransaction(TimeSpan)

Инициализирует новый экземпляр класса CommittableTransaction заданным значением timeout.

CommittableTransaction(TransactionOptions)

Инициализирует новый экземпляр класса CommittableTransaction с заданными параметрами транзакции.

Свойства

IsolationLevel

Получает уровень изоляции транзакции.

(Унаследовано от Transaction)
PromoterType

Однозначно определяет формат byte[] , возвращенного методом Promote при повышении уровня транзакции.

(Унаследовано от Transaction)
TransactionInformation

Извлекает дополнительные сведения о транзакции.

(Унаследовано от Transaction)

Методы

BeginCommit(AsyncCallback, Object)

Начинает попытку зафиксировать транзакцию асинхронно.

Clone()

Создает копию транзакции.

(Унаследовано от Transaction)
Commit()

Пытается зафиксировать транзакцию.

DependentClone(DependentCloneOption)

Создает зависимую копию транзакции.

(Унаследовано от Transaction)
Dispose()

Освобождает ресурсы, удерживаемые объектом.

(Унаследовано от Transaction)
EndCommit(IAsyncResult)

Завершает попытку зафиксировать транзакцию асинхронно.

EnlistDurable(Guid, IEnlistmentNotification, EnlistmentOptions)

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

(Унаследовано от Transaction)
EnlistDurable(Guid, ISinglePhaseNotification, EnlistmentOptions)

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

(Унаследовано от Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid)

Присоединяет диспетчер ресурсов, имеющий внутреннюю транзакцию, с помощью повышаемого однофазного зачисления (PSPE).

(Унаследовано от Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification)

Присоединяет диспетчер ресурсов, имеющий внутреннюю транзакцию, с помощью повышаемого однофазного зачисления (PSPE).

(Унаследовано от Transaction)
EnlistVolatile(IEnlistmentNotification, EnlistmentOptions)

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

(Унаследовано от Transaction)
EnlistVolatile(ISinglePhaseNotification, EnlistmentOptions)

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

(Унаследовано от Transaction)
Equals(Object)

Определяет, равны ли данная транзакция и указанный объект.

(Унаследовано от Transaction)
GetHashCode()

Возвращает хэш-код данного экземпляра.

(Унаследовано от Transaction)
GetPromotedToken()

Возвращает объект , byte[] возвращаемый методом Promote при повышении уровня транзакции.

(Унаследовано от Transaction)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
PromoteAndEnlistDurable(Guid, IPromotableSinglePhaseNotification, ISinglePhaseNotification, EnlistmentOptions)

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

(Унаследовано от Transaction)
Rollback()

Выполняет откат транзакции (прерывает ее).

(Унаследовано от Transaction)
Rollback(Exception)

Выполняет откат транзакции (прерывает ее).

(Унаследовано от Transaction)
SetDistributedTransactionIdentifier(IPromotableSinglePhaseNotification, Guid)

Задает идентификатор распределенной транзакции, созданный отличным от MSDTC активатором.

(Унаследовано от Transaction)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

События

TransactionCompleted

Указывает, что транзакция завершена.

(Унаследовано от Transaction)

Явные реализации интерфейса

IAsyncResult.AsyncState

Получает объект, предоставленный в качестве последнего параметра вызова метода BeginCommit(AsyncCallback, Object).

IAsyncResult.AsyncWaitHandle

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

IAsyncResult.CompletedSynchronously

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

IAsyncResult.IsCompleted

Получает указатель, позволяющий определить, выполнена ли асинхронная операция фиксации.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Получает SerializationInfo вместе с данными, необходимыми для сериализации данной транзакции.

(Унаследовано от Transaction)

Применяется к

Потокобезопасность

Данный тип потокобезопасен.

См. также раздел