Język

IEnlistmentNotification.InDoubt(Enlistment) Metoda

Definicja

Powiadamia obiekt z listy, że stan transakcji jest wątpliwy.

public:
 void InDoubt(System::Transactions::Enlistment ^ enlistment);
public void InDoubt(System.Transactions.Enlistment enlistment);
abstract member InDoubt : System.Transactions.Enlistment -> unit
Public Sub InDoubt (enlistment As Enlistment)

Parametry

enlistment
Enlistment

Obiekt Enlistment używany do wysyłania odpowiedzi do menedżera transakcji.

Uwagi

Ta metoda jest wywoływana dla nietrwałych zasobów, gdy menedżer transakcji wywołał operację zatwierdzania pojedynczej fazy do pojedynczego trwałego zasobu, a następnie połączenie z zasobem trwałym zostało utracone przed uzyskaniem wyniku transakcji. W tym momencie nie można bezpiecznie określić wyniku transakcji.

Ponieważ InDoubt jest to stan końcowy transakcji, nie należy wywoływać Commit ani Rollback po wywołaniu metody InDoubt.

Note

Implementacja tej metody dla nietrwałego zasobu powinna wykonać operację odzyskiwania lub powstrzymania, która rozumie na danych, których dotyczy problem. Należy również wywołać metodę Done na parametrze po zakończeniu enlistment pracy.

Jeśli menedżer zasobów zarejestrował się trwale, ale nie odpowiada za pomocą metody wywołującej Done , menedżer transakcji nie jest pewien, że menedżer zasobów odebrał InDoubt wywołanie. W związku z tym menedżer transakcji czeka na odpowiedź i utrzymuje informacje istotne dla tej transakcji. Jeśli Done nigdy nie jest wywoływana, ta część informacji jest przechowywana przez czas nieokreślony w pamięci lub w zasobie obejmującym cały system. Powoduje to, że zasoby nie mogą zostać odzyskane. W przypadku transakcji rozproszonej może to ostatecznie wypełnić dziennik MSDTC, który zatrzymuje proces MSDTC. W przypadku transakcji zarządzanej przez System.Transactionsprogram powoduje to stopniowy i ciągły wzrost zużycia pamięci procesu menedżera zasobów. W związku z tym ważne jest, aby wywołać metodę po zakończeniu Done pracy przy przygotowaniu menedżera zasobów.

Dotyczy