Przeprowadzanie transakcji MTS

Administrator transakcji MTS czasami staje przed koniecznością ręcznego przeprowadzenia transakcji dla pewnej aplikacji MTS. Do przeprowadzania transakcji służy okno Lista transakcji programu MTS Explorer. W oknie tym można wybrać jedno z następujących poleceń:

Czasami zachodzi konieczność przekazania lub przerwania transakcji w celu zwolnienia blokad, a tym samym udostępnienia zasobów bazy danych innym aplikacjom i użytkownikom sieci.

Sytuacja taka może wystąpić na przykład w wyniku przerwania linii komunikacyjnej między dwoma komputerami w sieci. Po ręcznym przekazaniu lub przerwaniu transakcji często należy również wymusić "zapomnienie" transakcji, co oznacza jej usunięcie z lokalnego pliku dziennika usługi MS DTC.

Rozważmy przykład ręcznego przerwania transakcji. Załóżmy, że spełnione zostały następujące warunki:

Transakcja została przerwana w następującym stanie:

Ponieważ linia komunikacyjna między komputerami A i B jest nadal nienaruszona, komputer B przekazał transakcję. Niemniej jednak, obydwa komputery muszą zachować w swoich plikach dzienników rekordy COMMITTED, aż do momentu kiedy komputery C i D potwierdzą, że również przekazały transakcję. Aby przeprowadzić transakcję (a tym samym zwolnić blokady baz danych nałożone na komputery C i D), administrator systemu wymusza przekazanie transakcji przez komputer C (zobacz następny rysunek).

Ponieważ linia komunikacyjna między komputerami A i B jest nadal nienaruszona, przekazanie transakcji wymuszone na komputerze C pozwala przekazać transakcję komputerowi D. Na komputerze D może zostać zwolniona blokada bazy danych, a transakcja może zostać zapomniana. Kiedy komputer D wyśle do komputera C potwierdzenie o przekazaniu i zapomnieniu transakcji, na komputerze C również będzie można zwolnić blokady bazy danych i zapomnieć transakcję.

Transakcję przekazano do wszystkich komputerów. Tym niemniej, ponieważ komputer C nie może poinformować o przekazaniu relacji komputera B, komputer B nadal musi pamiętać transakcję. Ponieważ na komputerze B transakcja nie została zapomniana, komputer A również musi ją pamiętać. Aby zakończyć transakcję, administrator systemu zmusza komputer B do zapomnienia transakcji (zobacz następny rysunek). To z kolei pozwala zapomnieć transakcję na komputerze A. W ten sposób protokół dwufazowego przekazu został wykonany ręcznie, a transakcja zakończona.

Ważne Z powodu dwustronności komunikacji opartej na protokole dwufazowego przekazu zaleca się przeprowadzać transakcje ręcznie, jeśli tylko komputery następujące po sobie przerwą komunikację. W opisanym przykładzie przekaz należało wymusić na komputerze C (nie D), a zapomnienie transakcji na komputerze B (nie A).

Jeśli po awarii systemu lub połączenia systemy uczestniczące w transakcji zostaną uruchomione ponownie, a połączenia przywrócone, usługa MS DTC przeprowadza transakcje automatycznie. Usługa nie jest w stanie przeprowadzić transakcji, jeśli systemy uległy awarii, a połączenia nie zostały przywrócone. W takim wypadku należy ręcznie przeprowadzić transakcje, które znajdują się w stanach: "Wątpliwa", "Nie można powiadomić o przerwaniu", "Nie można powiadomić o przekazaniu".

Stan "Wątpliwa"

Stan wątpliwa odnosi się do sytuacji, kiedy transakcja jest transakcją podrzędną, usługa MS DTC jest przygotowana, a nadrzędna usługa MS DTC jest niedostępna. Aby przeprowadzić transakcję wątpliwą, wykonaj następujące kroki:

  1. W oknie Lista transakcji odszukaj bezpośrednią transakcję nadrzędną transakcji wątpliwej. W tym celu kliknij prawym przyciskiem myszy i wybierz polecenie Właściwości. W jego efekcie zostaną wyświetlone komputery nadrzędnej usługi MS DTC i podrzędnej usługi MS DTC, przygotowane do transakcji.

  2. Odszukaj nadrzędną usługę MS DTC, a następnie w oknie Lista transakcji wyznacz wynik transakcji wątpliwej.
    • Jeśli transakcja nie jest wyświetlana w oknie Lista transakcji, oznacza to, że transakcja została przerwana i możesz przerwać ją ręcznie na komputerze podrzędnym.

    • Jeśli transakcja jest oznaczona na komputerze podrzędnym jako "Nie można powiadomić o przekazaniu", oznacza to, że transakcja została przekazana i możesz przekazać ją ręcznie na komputerze podrzędnym.

    • Jeśli transakcja jest oznaczona na komputerze podrzędnym jako "Nie można powiadomić o przerwaniu", oznacza to, że transakcja została przerwana i możesz przerwać ją ręcznie na komputerze podrzędnym.

    • Jeśli transakcja jest oznaczona na komputerze nadrzędnym jako "Wątpliwa", musisz, w oknie Lista transakcji na komputerze nadrzędnym, odszukać następny bezpośredni komputer nadrzędny. Kontynuuj przeszukiwanie drzewa przekazywania, aż do momentu znalezienia komputera nadrzędnego, w którym transakcja jest albo nie wyświetlana (co oznacza, że jest przerwana), albo znajduje się w stanie "Nie można powiadomić o przerwaniu" (co oznacza, że jest przerwana), albo znajduje się w stanie "Nie można powiadomić o przekazaniu" (co oznacza, że jest przekazana). Jeśli na komputerze nadrzędnym transakcja jest przerwana, ręcznie wymuś jej przerwanie w bezpośrednim komputerze podrzędnym. Jeśli na komputerze nadrzędnym transakcja jest przekazana, ręcznie wymuś jej przekazanie w bezpośrednim komputerze podrzędnym.
  3. Po ręcznym przerwaniu lub przekazaniu transakcji na komputerze podrzędnym ręcznie wymuś jej zapomnienie w bezpośrednim komputerze nadrzędnym.

Stan "Nie można powiadomić o przekazaniu"

Stan "Nie można powiadomić o przekazaniu" oznacza, że transakcja została przekazana, ale niektóre podrzędne usługi MS DTC nie zostały o tym powiadomione. W takim wypadku należy przeprowadzić transakcję ręcznie. Po pierwsze, należy kliknąć transakcję prawym przyciskiem myszy. Zostaną wówczas wyświetlone nadrzędne i podrzędne usługi MS DTC transakcji. Po zlokalizowaniu podrzędnych usług MS DTC należy w każdej z nich wymusić przekazanie transakcji. Na sam koniec należy powrócić do usługi MS DTC, która pokazywała transakcję w stanie "Nie można powiadomić o przekazaniu" i wymusić zapomnienie transakcji.

Notka Nie należy wymuszać ręcznie zapominania transakcji, dopóki o wyniku transakcji nie zostaną powiadomione wszystkie podrzędne usługi MS DTC.

Stan "Nie można powiadomić o przerwaniu"

Stan "Nie można powiadomić o przerwaniu" oznacza, że transakcja została przerwana, ale niektóre podrzędne usługi MS DTC nie zostały o tym powiadomione. Stan ten jest tożsamy ze stanem "Przerywana". Aby przeprowadzić transakcję ręcznie, należy wykonać następujące kroki. Po pierwsze, należy kliknąć transakcję prawym przyciskiem myszy. Zostaną wówczas wyświetlone nadrzędne i podrzędne usługi MS DTC transakcji. Po zlokalizowaniu podrzędnych usług MS DTC należy w każdej z nich wymusić przerwanie transakcji. Na sam koniec należy powrócić do usługi MS DTC, która pokazywała transakcję w stanie "Nie można powiadomić o przerwaniu" i wymusić zapomnienie transakcji.

Notka Nie należy wymuszać ręcznie zapominania transakcji, dopóki o wyniku transakcji nie zostaną powiadomione wszystkie podrzędne usługi MS DTC.

Aby przeprowaadzić transakcję

  1. W lewym okienku programu MTS Explorer zaznacz komputer, na którym chcesz przeprowadzić transakcję.

  2. Kliknij dwukrotnie ikonę Lista transakcji.

  3. W prawym okienku kliknij prawym przyciskiem myszy nad transakcją, którą chcesz przeprowadzić.

  4. W podmenu Przeprowadź kliknij polecenie Przekaż, Przerwij lub Zapomnij.

Zobacz też

Podstawowe informacje o transakcjach MTS, Zarządzanie usługą MS DTC, Monitorowanie transakcji MTS, Monitorowanie transakcji MTS w systemie Windows 95, Podstawowe informacje o stanach transakcji MTS, Lista transakcji


© 1998 Microsoft Corporation. Wszelkie prawa zastrzeżone.