Abonnementen
Abonnementsgegevens bevinden zich in de COM+-catalogus van het abonnement. Een abonnement kan worden gemaakt met behulp van het beheerprogramma Component Services of programmatisch met behulp van de interface ICOMAdminCatalog::InstallComponent interface.
De verzameling SubscriptionsForComponent wordt gebruikt om informatie over abonnementen toe te voegen, te verwijderen of te wijzigen. De verzameling SubscriptionsForComponent is een onderliggende verzameling voor een onderdeel. Als u een abonnement wilt toevoegen, haalt u de SubscriptionsForComponent-verzameling van het onderdeel op en gebruikt u de methode Toevoegen om een vermelding toe te voegen aan de verzameling. Als u de verschillende eigenschappen van het abonnementsobject wilt instellen, gebruikt u de eigenschap Waarde. Als u de wijzigingen wilt opslaan, gebruikt u SaveChanges op het verzamelingsobject SubscriptionsForComponent.
U kunt ook het beheerprogramma Component Services gebruiken om bepaalde, maar niet alle, abonnementseigenschappen te wijzigen. Abonnementen geven de volgende informatie op:
- Identiteit en locatie van de abonnee
- Leveringsmethode
- Gebeurtenismethoden om te leveren
- Gebeurtenisklasseobject en PublisherID-eigenschap van een gebeurtenisklasseonderdeel waarvan de abonnee gebeurtenissen wil ontvangen
Abonnementen bestaan onafhankelijk van gebeurtenisklasseobjecten. U kunt een abonnement uitschakelen door de eigenschap Ingeschakeld in te stellen op False. Een uitgeschakeld abonnement wordt niet aangeroepen door COM+ Events.
De drie typen abonnementen zijn als volgt:
-
permanente
-
Permanente abonnementen bevinden zich in de COM+-catalogus en zijn onafhankelijk van de levensduur van de abonnee. Permanente abonnementen overleven het opnieuw opstarten van het systeem. Over het algemeen wordt een permanent abonnement gemaakt wanneer een toepassing wordt geïnstalleerd op de computer van een abonnee en wordt verwijderd wanneer de toepassing wordt verwijderd. Nadat een permanent abonnement is gemaakt, activeert COM+-gebeurtenissen de abonnee telkens wanneer een gebeurtenis aan het abonnement moet worden geleverd.
Wanneer een uitgever een instantie maakt en een aanroep uitvoert op een gebeurtenisklasse object, zoekt het object naar alle permanente abonnementen in de COM+-catalogus en maakt het een nieuw exemplaar van elk object. Het aanmaakproces kan direct of via een moniker voor onderdelen in de wachtrij staan. Geef het abonneeobject op door de eigenschap SubscriberMoniker van het abonnement. Abonneeobjecten die zijn gemaakt door een permanent abonnement, worden altijd vrijgegeven na elke gebeurtenisaanroep.
-
tijdelijk
-
Voor tijdelijke abonnementen kunt u de TransientSubscriptions verzameling gebruiken, waarvan het bovenliggende object het hoofdcatalogusobject is. Tijdelijke abonnementen vragen een gebeurtenis aan voor een specifiek abonneeobject dat al bestaat. Tijdelijke abonnementen worden opgeslagen in de COM+-catalogus, maar het abonnement wordt verwijderd als het gebeurtenissysteem of besturingssysteem wordt gestopt. In tegenstelling tot permanente abonnementen zijn tijdelijke abonnementen gekoppeld aan een bepaald object en worden ze alleen opgeslagen in het gebeurtenissysteem. Tijdelijke abonnementen kunnen efficiënter zijn dan permanente abonnementen, maar u moet hun objectlevenscycli beheren. Zie Een tijdelijk abonnement registrerenvoor meer informatie over het registreren van een tijdelijk abonnement.
-
per gebruiker
-
Abonnementen per gebruiker kunnen alleen gebeurtenissen leveren wanneer de abonnee is aangemeld bij de computer van het gebeurtenissysteem. Wanneer de abonnee zich aanmeldt, schakelt het gebeurtenissysteem alle abonnementen in waarop de vlag PerUser is ingesteld op TRUE en wordt UserName ingesteld op de naam van de gebruiker die is aangemeld. Wanneer de abonnee zich afmeldt, worden de abonnementen uitgeschakeld.
Abonnementen per gebruiker zijn alleen van kracht wanneer de uitgever en abonnee zich op dezelfde computer bevinden. Aanmelding en afmelding worden alleen gedetecteerd op de computer van de uitgever, niet op de computer waarop het abonneeobject zich bevindt.
Het gebeurtenissysteem gebruikt metagebeurtenissen om geïnteresseerde abonnees op de hoogte te stellen wanneer gebeurtenisklasseobjecten of -abonnementen worden gemaakt, gewijzigd of verwijderd. Als u metagebeurtenissen van het gebeurtenissysteem wilt ontvangen, moeten toepassingen een abonnement maken dat zich op de computer van het gebeurtenissysteem bevindt en waarmee de id van de firing-interface (IID_IEventObjectChange) wordt opgegeven.