TransactionManager.Reenlist(Guid, Byte[], IEnlistmentNotification) Metoda

Definicja

Ponownie wylistuje trwałego uczestnika transakcji.

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

Parametry

resourceManagerIdentifiermanager
Guid

Element Guid , który jednoznacznie identyfikuje menedżera zasobów.

recoveryInformationrecoveryInfo
Byte[]

Zawiera dodatkowe informacje o odzyskiwaniu.

enlistmentNotificationnotification
IEnlistmentNotification

Obiekt zasobu, który implementuje odbieranie IEnlistmentNotification powiadomień.

Zwraca

Enlistment

Opis Enlistment rejestracji.

Wyjątki

recoveryInformation jest nieprawidłowy.

-lub- Informacje menedżera transakcji w programie recoveryInformation nie są zgodne ze skonfigurowanym menedżerem transakcji.

-lub- RecoveryInformation nie jest rozpoznawany przez System.Transactionsprogram .

RecoveryComplete(Guid) został już wywołany dla określonego resourceManagerIdentifierelementu . Ponowne listy zostanie odrzucone.

Element resourceManagerIdentifier nie jest zgodny z zawartością określonych informacji odzyskiwania w pliku recoveryInformation.

Uwagi

Ważne

Wywołanie tej metody z niezaufanymi danymi stanowi zagrożenie bezpieczeństwa. Wywołaj tę metodę tylko przy użyciu zaufanych danych. Aby uzyskać więcej informacji, zobacz Sprawdzanie poprawności danych.

Menedżer zasobów ułatwia rozwiązanie trwałych rejestracji w transakcji przez reenlisting uczestnika transakcji po awarii zasobu.

Parametr resourceManagerIdentifier jest używany do spójnego oznaczania uczestnika transakcji w przypadku awarii zasobu. Podczas wywoływania Reenlist metody menedżer zasobów musi podać to samo, resourceManagerIdentifier co użyto podczas wywoływania EnlistDurable metody podczas rejestracji lub TransactionException jest zgłaszana.

Gdy uczestnika, który jest reenlisted za pomocą tej metody, metody Faza 2 IEnlistmentNotification odpowiada wyniku transakcji (oznacza to, że Commit , Rollback lub InDoubt ) są nazywane odpowiednio.

Po pomyślnym ponownym na liście uczestników należy wywołać wywołanie RecoveryComplete w celu ukończenia odzyskiwania.

Należy wywołać tę metodę tylko wtedy, gdy menedżer zasobów ponownie uruchomi się po awarii. Ponadto należy tylko reenlist rozwiązane transakcje zarejestrowane przez Menedżera zasobów w fazie przygotowania początkowego dwufazowego zatwierdzania. Każda próba wywołania tej metody w czasie nieprawidłowy może utworzyć błędnych wyników.

Jeśli menedżer transakcji zakończy się niepowodzeniem, a menedżer zasobów wykona odzyskiwanie tylko chwilę po wywołaniu Prepared metody w fazie 1 protokołu Two-Phase Commit, menedżer zasobów może otrzymać InDoubt wywołanie zwrotne lub Rollback .

Aby uzyskać więcej informacji na temat odzyskiwania, zobacz Wykonywanie odzyskiwania.

Uwaga Ta metoda używa LinkDemand metody, aby zapobiec wywoływaniu z niezaufanego kodu. Jednak tylko bezpośredni obiekt wywołujący jest wymagany do posiadania FullTrust zestawu uprawnień.

Dotyczy

Zobacz też