Konteksty COM+
W przypadku skonfigurowanych składników działających w aplikacjach COM+ konteksty są podstawą, na której są udostępniane usługi COM+. W modelu COM+kontekst jest definiowany jako zestaw właściwości czasu wykonywania skojarzonych z co najmniej jednym obiektem COM, które są używane do świadczenia usług dla tych obiektów.
W modelu COM+każdy obiekt COM jest skojarzony z dokładnie jednym kontekstem podczas jego uruchamiania (czyli między aktywacją a dezaktywacją), a każdy kontekst znajduje się dokładnie w jednym mieszkaniu COM. Wiele obiektów może działać w tym samym kontekście, a wiele kontekstów może znajdować się w tym samym mieszkaniu. Zainicjowane, gdy obiekt jest aktywowany, właściwości kontekstu, takie jak właściwości kontekstu zabezpieczeń, reprezentują potrzeby czasu wykonywania obiektu.
Nuta
W przypadku nieskonfigurowanych składników, które nie korzystają z usług COM+, kontekst jest w większości ignorowany.
Com+ używa właściwości kontekstu jako podstawy do świadczenia usług w czasie wykonywania. Te właściwości przechowują stan określający, w jaki sposób środowisko wykonywania wykonuje usługi dla obiektów w kontekście. W niektórych przypadkach można bezpośrednio wchodzić w interakcje z właściwościami kontekstu obiektu, aby wskazać jakiś stan istotny dla usługi udostępnianej dla obiektu. Na przykład można to zrobić, gdy obiekt, który uczestniczy w automatycznych głosach transakcji na wynik transakcji.
Aby zapoznać się ze szczegółowym omówieniem podstaw tych pojęć, zobacz Procesy, wątki i apartamenty.
Programowa interakcja z właściwościami kontekstu
Każdy kontekst ma skojarzony obiekt ObjectContext, który śledzi jego właściwości. Dostęp do ObjectContext można uzyskać, wywołując funkcję GetObjectContext. Po dokonaniu dostępu do ObjectContextmożna wywołać metody w interfejsieIObjectContext, który uwidacznia w celu manipulowania właściwościami kontekstu.
Na przykład wywołanie IObjectContext::SetComplete ma wpływ na ustawienie bitu spójności transakcji na wartość "spójne", a aktywacja JIT wykonano bit "done" w kontekście skojarzonym z obiektem. Sygnały "Spójne" do modelu COM+ zagłosują na zatwierdzenie transakcji, a "gotowe" wskazują, że obiekt jest gotowy do dezaktywowania po powrocie metody.
Oprócz IObjectContextinne wyspecjalizowane interfejsy zapewniające dostęp do właściwości kontekstu są IObjectContextInfo, IContextStatei IObjectContextActivity. W pewnym stopniu ISecurityCallContext również uzyskuje dostęp do właściwości kontekstu. Do uzyskania ISecurityCallContext::GetSecurityCallContextmożna użyćISecurityCallContext.
Opis aktywacji i przechwytywania
Ogólnie rzecz biorąc, należy myśleć o kontekście tylko w zakresie, w jakim reprezentuje on wiele właściwości, z których niektóre można ustawić lub uzyskać, które są używane do świadczenia usług COM+ dla składników. Jednak w niektórych okolicznościach może być konieczne rozważenie następujących dwóch powiązanych aspektów kontekstów bardziej szczegółowo:
- aktywacja kontekstulub inicjowanie obiektu w odpowiednim kontekście.
- przechwytywanialub co com+ wykonuje wywołania w granicach kontekstu.
Relacja z otokami kontekstu usługi MTS
Konteksty skutecznie zastępują otoki kontekstu usługi MTS. Celem, dla którego służyły — dostarczanie usług automatycznych przez podlewanie żądań tworzenia — jest teraz zintegrowaną funkcją MODELU COM+. W związku z tym nie trzeba już używać funkcji SafeRef. W usłudze MTS SafeRef użyto do uzyskania odwołania do obiektu, który można przekazać poza otokę kontekstu. W modelu COM+jest to niepotrzebne; odwołania do normalnych obiektów (to wskaźniki) działają.