Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 25464|Odpowiedź: 0

[Źródło] .net/C# Rozproszony TransactionScope

[Skopiuj link]
Opublikowano 05.05.2018 10:53:17 | | | |
Cytując czyjś inny przewodnik:
W rzeczywistej pracy deweloperskiej wykonuje się zdarzenie, a następnie wywołuje inny interfejs do wstawiania danych; jeśli w logice przetwarzania występuje wyjątek, wcześniej wprowadzone dane stają się niepotrzebnymi danymi,
Chcemy móc zdefiniować całą metodę jako transakcję, a klasa TransactionScope zapewnia prostą metodę, która pozwala nie wchodzić w interakcję z samą transakcją.
oznaczać blok kodu jako uczestniczący w transakcji. Obiekt TransactionScope tworzy transakcję i ustawia ją na właściwość Current klasy Transaction.

1. Zalety TransactionScope
1. Jest wygodniejszy w użyciu. TransactionScope może implementować transakcje domyślne, dzięki czemu można pisać kod na warstwie dostępu do danych bez uwzględniania transakcji, ale kontrolować transakcje na warstwie biznesowej.
2. Można zaimplementować transakcje rozproszone, takie jak cross-database lub MSMQ.

2. Wady TransactionScope
1. Efektywność kosztowa nie jest wysoka. Na przykład kontrolujesz transakcje biblioteki tylko w "Scope". Używanie "TransactionScope" to trochę marnotrawstwo.
2. W normalnych okolicznościach, jeśli używasz "TransactionScope", musisz skonfigurować MSDTC, zainstalować zaporę sieciową i otworzyć port 139. Ten port nie może być zmieniony

3. Jeśli musisz używać transakcji rozproszonych, musisz się nad tym zastanowić
1. Czy ta operacja musi być uwzględniona w transakcji? Jeśli ten krok nie zostanie ukończony lub nie powiód się, czy warto cofnąć całą transakcję? Czy nie ma eleganckich środków kompensacyjnych ani tolerancji na błędy?
2. Ile punktów obejmują transakcje rozproszone? Musi mieć długi ciąg operacji w czasie rzeczywistym? Nie możesz usprawnić niektórych punktów poprzez operacje powiadamiania?
3. Po inicjowaniu transakcji rozproszonej, czy wykonałeś operacje niezależne od transakcji, mimo że były one niezwiązane z transakcją? (np. odczyt danych, obliczenia, oczekiwanie na zwrot wiadomości przez użytkownika, oczekiwanie na zwrot połączenia innych modułów itd.)
4. Nie uwzględniłeś w transakcji jakichś operacji odczytu, prawda? To łatwy błąd, gdy włączasz operację select do transakcji.
5. Niektóre kroki operacji można wykonać po zakończeniu wszystkich operacji. Ten typ operacji ma oczywiste cechy powiadamiania. Dział powiadomienia mówi: Daję ci powiadomienie i gwarantuję, że powiadomienie do ciebie dotrze;
Musisz przyjąć to powiadomienie i upewnić się, że zostanie ono przetworzone, ale nie musisz się tym zajmować od razu po moim powiadomieniu. Tę operację oczywiście można wykonać przy innym zadaniu.

4. Zwracaj uwagę na następujące punkty podczas korzystania z transakcji rozproszonych
1: Upewnij się, że maszyna uczestnicząca w transakcji ma włączone wsparcie dla transakcji rozproszonych.
2: Jeśli komputer ma włączoną zaporę, musisz ustawić proces msdtc jako wyjątek.
3: Maszyna uczestnicząca w transakcji nie może przekroczyć domeny (jeśli jest to transakcja międzydomenowa, Microsoft nie ma obecnie dokładnego rozwiązania);
4: Używaj rozproszonych transakcji tylko wtedy, gdy masz wiele baz danych, jeśli to ta sama baza danych, najlepiej użyć SqlTransaction.
1. Najpierw dodaj referencję System.Transactions (musisz dodać asemblację sieci)

Kod wywołania C# jest następujący:

Adres blogów wyjaśniających tę rozproszoną klasę transakcji jest bardzo jasny:http://www.cnblogs.com/artech/archive/2010/01/31/1660356.html

2. Ustaw konfigurację serwera WWW i środowiska SQL Server

Panel sterowania - > Systemy i bezpieczeństwo - Narzędzia zarządzania > - > Usługi komponentowe
(Jest to wymagane zarówno dla serwerów WEB, jak i SQL)





Panel sterowania - > Systemy i bezpieczeństwo - Narzędzia zarządzania > - Usługi >
(Jest to wymagane zarówno dla serwerów WEB, jak i SQL)




Panel sterowania - > System i bezpieczeństwo - > zapora Windows
(Jest to wymagane zarówno dla serwerów WEB, jak i SQL)




3. Konfiguracja MSSQL

Aby uzyskać połączenia z serwerem, kliknij prawym przyciskiem myszy - > właściwości




4. Konfiguruj hosty (konfiguruj tylko serwer WEB, jeśli nie, konfiguruj go także na serwerze SQL)

C:\Windows\System32\drivers\etc
hosts, który otwiera się za pomocą Notatnika
(Informacje o serwerze SQL muszą być skonfigurowane w pliku Hosts na serwerze WWW)
(Jeśli test się nie powiedzie, skonfiguruj informacje o serwerze WWW w pliku Hosts na serwerze SQL)






Poprzedni:Linki zewnętrzne do postów na forum Discuz X dodają atrybut nofollow
Następny:Funkcje, które w C# zachowują dwa miejsca po przecinku po dziesiętnym i sposoby ich używania
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com