Delen via


COM+-contexten

Voor geconfigureerde onderdelen die worden uitgevoerd in COM+-toepassingen, contexten de basis vormen waarop COM+-services worden geleverd. In COM+wordt een context gedefinieerd als set runtime-eigenschappen die zijn gekoppeld aan een of meer COM-objecten die worden gebruikt voor het leveren van services voor deze objecten.

In COM+wordt elk COM-object gekoppeld aan precies één context terwijl het wordt uitgevoerd (dat wil zeggen, tussen de activering en deactivering), en elke context bevindt zich in precies één COM-appartement. Meerdere objecten kunnen binnen dezelfde context worden uitgevoerd en meerdere contexten kunnen zich in hetzelfde appartement bevinden. Geïnitialiseerd wanneer een object wordt geactiveerd, contexteigenschappen, zoals eigenschappen van beveiligingscontext, vertegenwoordigen de uitvoeringsbehoeften van een object.

Notitie

Voor niet-geconfigureerde onderdelen die geen COM+-services gebruiken, wordt de context voor het grootste deel genegeerd.

 

COM+ gebruikt contexteigenschappen als basis voor het leveren van runtimeservices. Deze eigenschappen hebben de status die bepaalt hoe de uitvoeringsomgeving services uitvoert voor objecten binnen de context. In sommige gevallen kunt u rechtstreeks communiceren met de contexteigenschappen van een object om een bepaalde status aan te geven die relevant is voor een service die voor het object wordt geleverd. U doet dit bijvoorbeeld wanneer een object dat deelneemt aan een automatische transactiestemmen over het resultaat van de transactie.

Zie Processen, Threads en Appartementenvoor een gedetailleerde bespreking van de COM-basis van deze concepten.

Programmatische interactie met contexteigenschappen

Elke context heeft een gekoppeld ObjectContext object dat de eigenschappen bijhoudt. U hebt toegang tot ObjectContext- door de functie GetObjectContext aan te roepen. Nadat u ObjectContexthebt geopend, kunt u methoden aanroepen op de IObjectContext interface die beschikbaar is om contexteigenschappen te bewerken.

Het aanroepen van IObjectContext::SetComplete heeft bijvoorbeeld het effect van het instellen van de transactieconsistentie-bit op 'consistent' en de JIT-activering voltooid op de context die aan het object is gekoppeld. "Consistente" signalen voor COM+ die u stemt om de transactie door te voeren en "gereed" geeft aan dat uw object gereed is om te worden gedeactiveerd wanneer de methode wordt geretourneerd.

Naast IObjectContextzijn andere gespecialiseerde interfaces die toegang bieden tot contexteigenschappen IObjectContextInfo, IContextStateen IObjectContextActivity. In bepaalde mate heeft ISecurityCallContext ook toegang tot contexteigenschappen. U kunt IGetSecurityCallContext::GetSecurityCallContext gebruiken om ISecurityCallContext-te verkrijgen.

Informatie over activering en onderschepping

Over het algemeen moet u alleen nadenken over context voor zover deze een aantal eigenschappen vertegenwoordigt, waarvan sommige u kunt instellen of ophalen, die worden gebruikt voor het leveren van COM+-services voor uw onderdelen. In sommige gevallen moet u echter de volgende twee onderling gerelateerde facetten van contexten in meer detail overwegen:

  • contextactiveringof de initialisatie van een object in een geschikte context.
  • Interceptionof wat COM+ doet voor aanroepen binnen een contextgrens.

Relatie tot MTS-contextwikkelaars

Contexten vervangen effectief de MTS-contextwikkelaars. Het doel dat ze hebben geleverd , het leveren van automatische services door het invullen van aanvragen voor het maken van aanvragen, is nu een geïntegreerde functie van COM+. Als gevolg hiervan hoeft u de functie SafeRef niet meer te gebruiken. In MTS is SafeRef- gebruikt om een verwijzing naar uw object te verkrijgen die buiten de contextwikkelaar kan worden doorgegeven. In COM+is dit overbodig; normale objectverwijzingen (dit pointers) werken.