środa, 1 sierpnia 2012

MSDTC - Microsoft Distributed Transaction Coordinator

Wielu programistów nie zdaje sobie sprawy z istnienia MSDTC. Czym jest i czy warto o nim wiedzieć podczas tworzenia zapytań? W tym poście postaram się to rozjaśnić.

Jak sama nazwa mówi, MSDTC jest usługą systemu Windows zapewniającą infrastrukturę dla systemów rozproszonych transakcji. Jak wiadomo transakcja ma 4 podstawowe właściwości pochodzące od akronimu ACID:
  • Atomic - atomowość - czyli transakcja wykona się albo w całości albo w ogóle
  • Consistency - spójność - po wykonaniu transakcji nie może dojść do naruszenia jakichkolwiek więzów spójności
  • Isolation - izolacja - w przypadku gdy dwie transakcje wykonują się równocześnie w zależności od poziomu izolacji nie widzą zmian wprowadzany przez siebie nawzajem
  • Durability - trwałość - po zapisaniu transakcji system musi umożliwić uruchomienie się nawet w przypadku awarii
Główni aktorami w transakcji są:
  • Manager transakcji - MSDTC
  • Inicjator - aplikacja zapoczątkowująca transakcję
  • Manager zasobów
Przepływ jest następujący:
  1. Aplikacja inicjująca (Inicjator) wysyła żądanie do managera transakcji o udostępnienie wolnej transakcji
  2. Aplikacja kliencka wysyła żądanie do managera zasobów żądanie o wykonanie zadania jako transakcji
  3. Aplikacja kliencka zatwierdza transakcję
  4. Manager transakcji we współpracy z managerem zasobów sprawdza czy wszystkie zadania zostały wykonane poprawnie - sprawdza w ten sposób zasady ACID

Brak komentarzy:

Prześlij komentarz