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 объекта. Дополнительные сведения о внешних транзакциях см. в подразделе «Управление потоком транзакций с помощью Трансактионскопеоптион» статьи Реализация неявной транзакции с использованием области действия транзакции . Если внешняя транзакция не задана, любая операция с диспетчером ресурсов не является частью этой транзакции. Необходимо явно задать и сбросить внешнюю транзакцию, чтобы диспетчеры ресурсов работали в правильном контексте транзакции.

Пока объект не будет 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)
ISerializable.GetObjectData(SerializationInfo, StreamingContext)

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

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

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

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

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

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