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 resourceManagerIdentifier, byte[] recoveryInformation, System.Transactions.IEnlistmentNotification enlistmentNotification);
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

Параметры

resourceManagerIdentifier
Guid

Объект, Guid который однозначно идентифицирует диспетчер ресурсов.

recoveryInformation
Byte[]

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

enlistmentNotification
IEnlistmentNotification

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

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

Описание Enlistment перечисления.

Исключения

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

–или–

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

–или–

recoveryInformation не распознается System.Transactions.

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

Содержимое resourceManagerIdentifier указанной информации recoveryInformationвосстановления не соответствует.

Комментарии

Important

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

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

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

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

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

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

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

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

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