ISinglePhaseNotification Интерфейс

Определение

Описывает объект ресурса, который поддерживает оптимизацию однофазной фиксации для участия в транзакции.Describes a resource object that supports single phase commit optimization to participate in a transaction.

public interface class ISinglePhaseNotification : System::Transactions::IEnlistmentNotification
public interface ISinglePhaseNotification : System.Transactions.IEnlistmentNotification
type ISinglePhaseNotification = interface
    interface IEnlistmentNotification
Public Interface ISinglePhaseNotification
Implements IEnlistmentNotification
Реализации

Комментарии

Следует отметить, что даже если диспетчер ресурсов реализует этот интерфейс для поддержки оптимизации однофазной фиксации, он не гарантирует, что он получит один этап фиксации.You should note that even when your resource manager implements this interface to support single phase commit optimization, it is not guaranteed that it receives a single phase commit. Диспетчер транзакций по-прежнему может отправлять уведомления о двухфазной фиксации в два этапа.The transaction manager can still send two phase commit notifications instead.

Чтобы прикрепить диспетчер ресурсов как участника транзакции, вызовите EnlistVolatile метод EnlistDurable или метод Transaction класса.To enlist your resource manager as a participant in a transaction, call the EnlistVolatile method or the EnlistDurable method of the Transaction class. В частности, EnlistmentOptions параметр должен None равняться значению, чтобы обеспечить выполнение однофазной фиксации.Specifically, the EnlistmentOptions parameter should equal to None to ensure that a single phase commit is performed. Если по EnlistDuringPrepareRequiredошибке задано значение, однофазная фиксация не выполняется.If it is mistakenly set to EnlistDuringPrepareRequired, no single phase commit occurs.

Поскольку интерфейс является производным IEnlistmentNotification от интерфейса, диспетчер ресурсов также должен реализовать все методы второго этапа для уведомлений о двухфазной фиксации. ISinglePhaseNotificationSince the ISinglePhaseNotification interface derives from the IEnlistmentNotification interface, the resource manager must also implement all the methods of the latter for two phase commit notifications. Диспетчер транзакций определяет, используется ли для этого диспетчера ресурсов две фазы фиксации или оптимизация однофазной фиксации.It is the transaction manager's choice as to whether two phase commit or the single phase commit optimization is used with this resource manager. Однако реализация этого интерфейса предоставляет диспетчеру ресурсов возможность использовать преимущества оптимизации, когда она доступна.However, implementing this interface gives the resource manager the opportunity to take advantage of the optimization when it is available.

Если используется оптимизация и диспетчер транзакций вызывает SinglePhaseCommit метод прикрепленного ресурса, диспетчер ресурсов должен ответить на этот вызов, используя различные методы SinglePhaseEnlistment класса для информирования диспетчера транзакций, если транзакция должна быть зафиксирована или отменена.If the optimization is used and the transaction manager calls the SinglePhaseCommit method of the enlisted resource, the resource manager should respond to this call by using various methods of the SinglePhaseEnlistment class to inform the transaction manager if the transaction is to be committed or rolled back.

Методы

Commit(Enlistment)

Уведомляет включенный в список объект о том, что транзакция фиксируется.Notifies an enlisted object that a transaction is being committed.

(Унаследовано от IEnlistmentNotification)
InDoubt(Enlistment)

Уведомляет включенный в список объект о сомнительном состоянии транзакции.Notifies an enlisted object that the status of a transaction is in doubt.

(Унаследовано от IEnlistmentNotification)
Prepare(PreparingEnlistment)

Уведомляет включенный в список объект о том, что транзакция подготавливается для фиксации.Notifies an enlisted object that a transaction is being prepared for commitment.

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

Уведомляет включенный в список объект о том, что выполняется откат транзакции (ее прерывание).Notifies an enlisted object that a transaction is being rolled back (aborted).

(Унаследовано от IEnlistmentNotification)
SinglePhaseCommit(SinglePhaseEnlistment)

Представляет реализацию диспетчером ресурсов функции обратного вызова для оптимизации однофазной фиксации.Represents the resource manager's implementation of the callback for the single phase commit optimization.

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

Дополнительно