TransactionManager.Reenlist(Guid, Byte[], IEnlistmentNotification) Метод

Определение

Повторно включает долговременного участника в список транзакции.

public:
 static System::Transactions::Enlistment ^ Reenlist(Guid resourceManagerIdentifier, cli::array <System::Byte> ^ recoveryInformation, System::Transactions::IEnlistmentNotification ^ enlistmentNotification);
public:
 static System::Transactions::Enlistment ^ Reenlist(Guid manager, cli::array <System::Byte> ^ recoveryInfo, System::Transactions::IEnlistmentNotification ^ notification);
public static System.Transactions.Enlistment Reenlist (Guid resourceManagerIdentifier, byte[] recoveryInformation, System.Transactions.IEnlistmentNotification enlistmentNotification);
public static System.Transactions.Enlistment Reenlist (Guid manager, byte[] recoveryInfo, System.Transactions.IEnlistmentNotification notification);
static member Reenlist : Guid * byte[] * System.Transactions.IEnlistmentNotification -> System.Transactions.Enlistment
static member Reenlist : Guid * byte[] * System.Transactions.IEnlistmentNotification -> System.Transactions.Enlistment
Public Shared Function Reenlist (resourceManagerIdentifier As Guid, recoveryInformation As Byte(), enlistmentNotification As IEnlistmentNotification) As Enlistment
Public Shared Function Reenlist (manager As Guid, recoveryInfo As Byte(), notification As IEnlistmentNotification) As Enlistment

Параметры

resourceManagerIdentifiermanager
Guid

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

recoveryInformationrecoveryInfo
Byte[]

Содержит дополнительные сведения о восстановлении.

enlistmentNotificationnotification
IEnlistmentNotification

Объект ресурса, реализующий интерфейс IEnlistmentNotification для приема уведомлений.

Возвращаемое значение

Enlistment

Объект Enlistment, описывающий зачисление.

Исключения

recoveryInformation недопустим.

-или- Сведения о диспетчере транзакций в параметре recoveryInformation не соответствуют настроенному диспетчеру транзакций.

-или- Параметр RecoveryInformation не распознается инфраструктурой System.Transactions.

Метод RecoveryComplete(Guid) уже вызван для указанного идентификатора resourceManagerIdentifier. Повторное зачисление отклонено.

Идентификатор resourceManagerIdentifier не соответствует сведениям о восстановлении, указанным в параметре recoveryInformation.

Комментарии

Важно!

Вызов этого метода для ненадежных данных представляет угрозу безопасности. Вызывайте этот метод только для надежных данных. Дополнительные сведения см. в разделе "Проверка всех входных данных".

Диспетчер ресурсов обеспечивает разрешение зачислений устойчивых ресурсов в транзакции, повторно зачисляя участника транзакции после сбоя ресурса.

Параметр resourceManagerIdentifier используется для последовательной маркировки участника транзакции в случае сбоя ресурса. При вызове Reenlist метода диспетчер ресурсов должен указать то же resourceManagerIdentifier , что и при первоначальном вызове EnlistDurable метода во время зачисления, или TransactionException создается исключение.

При повторном зачислении участника с помощью этого метода в зависимости от результата транзакции вызывается соответствующий метод фазы 2 интерфейса IEnlistmentNotification (Commit, Rollback или InDoubt).

После успешного повторного включения участников необходимо вызвать RecoveryComplete для завершения восстановления.

Этот метод следует вызывать только при перезапуске диспетчера ресурсов из-за сбоя. Кроме того, повторное зачисление следует выполнить только для неразрешенных транзакций, зарегистрированных диспетчером ресурсов в ходе начальной фазы подготовки двухфазной фиксации. Любая попытка вызова этого метода в недопустимое время может привести к ошибочным результатам.

Если диспетчер транзакций завершается сбоем, и диспетчер ресурсов выполняет восстановление только через некоторое время после вызова Prepared метода в зачислении на этапе 1 протокола Two-Phase Commit, диспетчер ресурсов может получить или Rollback обратный InDoubt вызов.

Дополнительные сведения о восстановлении см. в разделе "Выполнение восстановления".

Примечание Этот метод используется LinkDemand для предотвращения вызова из ненадежного кода, однако для получения набора разрешений требуется только непосредственный вызывающий FullTrust объект.

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

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