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.
Ogólnie rzecz biorąc, synchronizacja nie jest wymagana, gdy masz jednowątkowy apartament (STA), ponieważ mieszkanie zapewnia synchronizację. Synchronizacja staje się ważna, gdy masz wielowątkowy apartament (MTA) i obiekt wolnowątkowy. W przeszłości obiekty wielowątkowe musiały obsługiwać blokowanie. Można wyeliminować konieczność używania blokady, ustawiając atrybut synchronizacji dla składnika.
Synchronizacja ma następujące właściwości:
- Umożliwia jednemu dzwoniącemu jednocześnie wejście do składnika.
- Uniemożliwia przepływ między procesami lub między komputerami.
- Przepływy z składnika do składnika w ramach procesu.
- Umożliwia ponowne wywołanie przez tego samego wywołującego.
W przeciwieństwie do lokali, działania obejmują konteksty z wielu procesów i jednostek hostujących. Synchronizacja określa, która aktywność będzie zawierać ten obiekt. Obiekty mogą znajdować się w dowolnej z następujących działań:
- Aktywność twórcy
- Nowe działanie
- Brak działania
COM+ zapewnia współbieżność za pomocą szeregu blokad dla każdego działania. Jeśli obiekt wywołujący spróbuje wprowadzić zsynchronizowany składnik COM+, który jest już używany przez innego wywołującego, wywołanie zostanie zablokowane do momentu zwolnienia blokady. To zachowanie blokujące nie ma limitu czasu i nie można go skonfigurować, aby miał limit czasu. Jeśli blokada nie jest używana, jest przejmowana, a wywołanie przetwarzane. Po zakończeniu blokada zostanie zwolniona dla następnego wywołującego. Aby zapobiec zakleszczeniu, COM+ zarządza dostępem do wszystkich obiektów między działalnościami poprzez zagnieżdżoną serię wywołań łańcuchowych w całej sieci.
Com+ udostępnia następujące ustawienia synchronizacji:
- Niepełnosprawny
- Nieobsługiwane
- Obsługiwane
- Wymagane
- Wymaga nowego
Notatka
Niektóre ustawienia synchronizacji działają w połączeniu z innymi ustawieniami składników COM+. Na przykład synchronizacja jest wymagana, jeśli usługa aktywacji COM+ just in time (JIT) jest włączona. Włączenie transakcji wymaga korzystania z JIT; dlatego przetwarzanie transakcji COM+ również wymaga synchronizacji. Dlatego klasy z ustawieniem JIT=True muszą również mieć ustawienie Synchronization=Required lub Synchronization=RequiresNew.
Aby uzyskać instrukcje dotyczące ustawiania opcji synchronizacji przy użyciu narzędzia administracyjnego usługi składników, zobacz Ustawianie atrybutu synchronizacji.
Aby uzyskać więcej informacji na temat używania biblioteki administracyjnej COM+ do ustawiania opcji synchronizacji, zobacz Automatyzowanie administracji COM+.
Tematy pokrewne