Udostępnij przez


Pojęcia dotyczące synchronizacji modelu COM+

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+.

zadania synchronizacji COM+