Udostępnij przez


Zarządzanie transakcjami automatycznymi w modelu COM+

W modelu programowania COM+ możesz zaprojektować składniki, aby robić to, co robią najlepiej — włączając logikę biznesową lub nawiązywanie połączenia z bazą danych — i polegać na strukturze przetwarzania transakcji systemu Microsoft Windows w celu zautomatyzowania transakcji.

Uruchamianie transakcji

Com+ automatycznie rozpoczyna transakcję po napotkaniu jednego z następujących warunków:

  • Gdy klient nietransakcyjny wywołuje składnik wymagający transakcji lub wymagający nowej transakcji.
  • Gdy klient transakcyjny wywołuje składnik, który wymaga nowej transakcji.

Jeśli com+ ustali, że obiekt powinien mieć nową transakcję, rozpoczyna transakcję najpierw, a następnie umieszcza w nim obiekt. Proces obejmuje następujące kroki:

  1. COM+ tworzy obiekt kontekstu, ustawia zarówno atrybuty aktywacji JIT , jak i synchronizacji na wymagane, oraz ustawia flagi spójne i gotowe na Prawda i Fałsz.
  2. Com+ komunikuje się z koordynatorem transakcji rozproszonych (DTC), aby rozpocząć transakcję. DtC koordynuje transakcję fizyczną.
  3. DTC generuje identyfikator transakcji i przekazuje go z powrotem do COM+. Identyfikator transakcji ustanawia granicę transakcji. Wszystkie obiekty biorące udział w transakcji mają ten sam identyfikator.
  4. Gdy klient tworzy obiekt, com+ aktywuje go w granicach transakcji.

Kończenie transakcji

Com+ kończy transakcję automatyczną, zatwierdzając lub przerywając ją, gdy wystąpi jeden z następujących warunków:

  • Obiekt bazowy transakcji kończy swoją pracę, a COM+ zwalnia go. Po dezaktywowaniu obiektu głównego transakcja próbuje zatwierdzić.
  • Klient zwalnia obiekt korzeniowy. W przypadku braku referencji obiekt główny dezaktywuje się, a transakcja próbuje się zatwierdzić.
  • Transakcja przekracza próg limitu czasu. Transakcja przerywa się automatycznie, jeśli nie zostanie zatwierdzona w okresie przekroczenia limitu czasu transakcji, dezaktywując wszystkie obiekty skojarzone z transakcją. Domyślny limit czasu transakcji wynosi 60 sekund.

spójne i gotowe flagi

Przyspieszanie transakcji przez powiadomienie obiektu głównego

kończenie transakcji automatycznej przez wywołanie polecenia SetComplete