CommittableTransaction Класс

Определение

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

public ref class CommittableTransaction sealed : System::Transactions::Transaction, IAsyncResult
public ref class CommittableTransaction sealed : System::Transactions::Transaction, IAsyncResult, IDisposable, System::Runtime::Serialization::ISerializable
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
[System.Serializable]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult, IDisposable, System.Runtime.Serialization.ISerializable
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
[<System.Serializable>]
type CommittableTransaction = class
    inherit Transaction
    interface ISerializable
    interface IDisposable
    interface IAsyncResult
Public NotInheritable Class CommittableTransaction
Inherits Transaction
Implements IAsyncResult
Public NotInheritable Class CommittableTransaction
Inherits Transaction
Implements IAsyncResult, IDisposable, ISerializable
Наследование
CommittableTransaction
Атрибуты
Реализации

Комментарии

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

Примечание

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

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

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

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

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

CommittableTransaction()

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

CommittableTransaction(TimeSpan)

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

CommittableTransaction(TransactionOptions)

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

Свойства

IsolationLevel

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

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

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

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

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

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

Методы

BeginCommit(AsyncCallback, Object)

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

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

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

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

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

DependentClone(DependentCloneOption)

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

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

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

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

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

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

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

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

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

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

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

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

Присоединяет диспетчер ресурсов, имеющий внутреннюю транзакцию, с помощью повышаемого однофазного зачисления (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 данными, необходимыми для сериализации целевого объекта.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

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

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

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

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

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

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