TransactionManager.Reenlist(Guid, Byte[], IEnlistmentNotification) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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ń.