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 tej sekcji opisano sposób używania funkcji udostępnianych przez System.Transactions przestrzeń nazw do pisania własnej aplikacji transakcyjnej i menedżera zasobów. W szczególności w tej sekcji opisano sposób tworzenia i uczestnictwa w transakcji (lokalnej lub rozproszonej) z jednym lub wieloma uczestnikami.
Omówienie elementu System.Transactions
Infrastruktura dostarczana przez klasy w System.Transactions przestrzeni nazw sprawia, że programowanie transakcyjne jest proste i wydajne przez obsługę transakcji inicjowanych w programie SQL Server, ADO.NET, kolejkowania komunikatów (MSMQ) i koordynatora transakcji rozproszonych firmy Microsoft (MSDTC). System.Transactions Przestrzeń nazw zapewnia zarówno jawny model programowania oparty na Transaction klasie, jak i niejawny model programowania przy użyciu TransactionScope klasy, w której transakcje są automatycznie zarządzane przez infrastrukturę. Aby uzyskać więcej informacji na temat tworzenia aplikacji transakcyjnej przy użyciu tych dwóch modeli, zobacz Pisanie aplikacji transakcyjnej.
System.Transactions Przestrzeń nazw udostępnia również typy do zaimplementowania menedżera zasobów. Menedżer zasobów zarządza trwałymi lub niestabilnymi danymi używanymi w transakcji i współpracuje z menedżerem transakcji, aby zapewnić aplikacji gwarancję niepodzielności i izolacji. Menedżer transakcji udostępniany przez System.Transactions infrastrukturę obsługuje transakcje obejmujące wiele nietrwałych zasobów lub jeden trwały zasób. Aby uzyskać więcej informacji na temat implementowania menedżera zasobów, zobacz Implementowanie usługi Resource Manager.
Menedżer transakcji również w sposób przejrzysty eskaluje transakcje lokalne do transakcji rozproszonych, współpracując z menedżerem transakcji opartym na systemie dyskowym, takim jak DTC, gdy dodatkowy trwały menedżer zasobów rejestruje się do transakcji. Istnieją dwa kluczowe sposoby zapewniania zwiększonej System.Transactions wydajności infrastruktury.
Dynamiczna eskalacja, która gwarantuje, że infrastruktura System.Transactions angażuje się w MSDTC tylko wtedy, gdy transakcja obejmuje wiele rozproszonych zasobów. Aby uzyskać więcej informacji na temat dynamicznej eskalacji. Zobacz Temat Eskalacja zarządzania transakcjami .
Promotable Enlistments, który umożliwia zasobowi, takie jak baza danych, przejęcie własności transakcji, jeśli jest to jedyna jednostka uczestnicząca w transakcji. Później, jeśli zajdzie taka potrzeba, infrastruktura System.Transactions może nadal przekazywać zarządzanie transakcją do usługi MSDTC. Dodatkowo zmniejsza to prawdopodobieństwo korzystania z MSDTC. Możliwe do awansu rekrutacje zostały szczegółowo omówione w temacieOptymalizacja przy użyciu zatwierdzania jednofazowego i promowalnego powiadomienia jednofazowego.
System.Transactions Przestrzeń nazw definiuje trzy poziomy zaufania — AllowPartiallyTrustedCallers (APTCA), DistributedTransactionPermission(DTP) i pełne zaufanie — które ograniczają dostęp do typów udostępnianych zasobów. Aby uzyskać więcej informacji na temat różnych poziomów zaufania, zobacz Poziomy zaufania w zakresie bezpieczeństwa podczas uzyskiwania dostępu do zasobów.
W tym dziale
Pisanie aplikacji transakcyjnej
System.Transactions Przestrzeń nazw udostępnia dwa modele tworzenia aplikacji transakcyjnych. Implementacja transakcji niejawnej przy użyciu zakresu transakcji opisuje sposób, w jaki przestrzeń nazw obsługuje tworzenie niejawnych transakcji przy użyciu klasy System.Transactions.
Implementowanie transakcji jawnej przy użyciu funkcji CommittableTransaction opisuje sposób, w jaki System.Transactions przestrzeń nazw obsługuje tworzenie jawnych transakcji przy użyciu CommittableTransaction klasy .
Aby uzyskać dodatkowe tematy dotyczące pisania aplikacji transakcyjnej, zobacz Pisanie aplikacji transakcyjnej.
Implementowanie Menadżera zasobów
Aby zaimplementować menedżera zasobów, który może uczestniczyć w transakcji, zobacz Implementowanie usługi Resource Manager. W tej sekcji opisano rejestrowanie zasobu, zatwierdzanie transakcji, odzyskiwanie po awarii i najlepsze rozwiązania dotyczące optymalizacji.