Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
- 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.
- Com+ komunikuje się z koordynatorem transakcji rozproszonych (DTC), aby rozpocząć transakcję. DtC koordynuje transakcję fizyczną.
- 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.
- 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.
Tematy pokrewne
-
Przyspieszanie transakcji przez powiadomienie obiektu głównego
-
kończenie transakcji automatycznej przez wywołanie polecenia SetComplete