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
Параметры
- 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 вызов.
Дополнительные сведения о восстановлении см. в разделе "Выполнение восстановления".