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 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:
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" 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ę
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