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 zapisuje trwałego uczestnika w 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 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
Parametry
- recoveryInformation
- Byte[]
Zawiera dodatkowe informacje o odzyskiwaniu.
- enlistmentNotification
- IEnlistmentNotification
Obiekt zasobu, który implementuje odbieranie IEnlistmentNotification powiadomień.
Zwraca
Element Enlistment opisujący rejestrację.
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.Transactions.
RecoveryComplete(Guid) został już wywołany dla określonego resourceManagerIdentifierelementu . Ponowne rejestrowanie jest odrzucane.
Element resourceManagerIdentifier nie jest zgodny z zawartością określonych informacji odzyskiwania w pliku recoveryInformation.
Uwagi
Ważna
Wywoływanie tej metody z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj tę metodę tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs.
Menedżer zasobów ułatwia rozwiązywanie trwałych zgłoszeń w transakcji przez ponowne zapisanie uczestnika transakcji w przypadku awarii zasobu.
Parametr resourceManagerIdentifier służy 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 pierwotnego EnlistDurable wywołania metody podczas rejestracji lub TransactionException jest zgłaszany.
Gdy uczestnik zostanie ponownie wymieniony przy użyciu tej metody, metody IEnlistmentNotification fazy 2 odpowiadają wynikowi transakcji (czyli , CommitRollback, lub InDoubt ) są wywoływane odpowiednio.
Po pomyślnym ponownym na liście uczestników należy wywołać metodę RecoveryComplete w celu ukończenia odzyskiwania.
Tę metodę należy wywołać tylko wtedy, gdy menedżer zasobów ponownie uruchomi się po awarii. Ponadto należy tylko ponownie zarejestrować nierozstrzygnięte transakcje zarejestrowane przez menedżera zasobów w początkowej fazie przygotowawczej dwufazowego zatwierdzenia. Każda próba wywołania tej metody w nieprawidłowych momentach może spowodować błędne wyniki.
Jeśli menedżer transakcji ulegnie awarii, a menedżer zasobów wykona odzyskiwanie tylko krótki czas po wywołaniu Prepared metody na liście w fazie 1 protokołu zatwierdzania Two-Phase, menedżer zasobów może otrzymać InDoubt wywołanie zwrotne lub Rollback .
Aby uzyskać więcej informacji na temat odzyskiwania, zobacz Wykonywanie odzyskiwania.