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
Nazwa recoveryInformation
jest niepoprawna.
-lub-
Informacje menedżera transakcji w programie recoveryInformation
są niezgodne ze skonfigurowanym menedżerem transakcji.
-lub-
RecoveryInformation
nie jest rozpoznawany przez .System.Transactions
RecoveryComplete(Guid) został już wywołany dla określonego resourceManagerIdentifier
elementu . Ponowne rejestrowanie jest odrzucane.
Właściwość nie jest zgodna resourceManagerIdentifier
z zawartością określonych informacji odzyskiwania w pliku recoveryInformation
.
Uwagi
Ważne
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 (Weryfikowanie wszystkich danych wejściowych).
Menedżer zasobów ułatwia rozwiązanie trwałych rejestracji w transakcji przez reenlisting uczestnika transakcji po 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 pierwotnie wywoływania EnlistDurable metody podczas rejestracji lub TransactionException jest zgłaszany.
Gdy uczestnik jest ponownie wymieniony przy użyciu tej metody, metody IEnlistmentNotification fazy 2, które 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 zostanie uruchomiony ponownie z powodu 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 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.