Abonnements
Abonnementdaten befinden sich im COM+-Abonnementkatalog des Abonnements. Ein Abonnement kann entweder mithilfe des Verwaltungstools für Komponentendienste oder programmgesteuert mithilfe der ICOMAdminCatalog::InstallComponent Schnittstelle erstellt werden.
Die SubscriptionsForComponent Sammlung wird verwendet, um Informationen zu Abonnements hinzuzufügen, zu löschen oder zu ändern. Die SubscriptionsForComponent-Auflistung ist eine untergeordnete Auflistung für eine Komponente. Um ein Abonnement hinzuzufügen, rufen Sie die SubscriptionsForComponent Collection der Komponente ab, und verwenden Sie die Add-Methode, um der Auflistung einen Eintrag hinzuzufügen. Verwenden Sie zum Einrichten der verschiedenen Eigenschaften des Abonnementobjekts die eigenschaft Value. Um die Änderungen zu speichern, verwenden Sie SaveChanges- für das SubscriptionsForComponent-Auflistungsobjekt.
Sie können auch das Verwaltungstool für Komponentendienste verwenden, um einige, aber nicht alle Abonnementeigenschaften zu ändern. Abonnements geben die folgenden Informationen an:
- Identität und Standort des Abonnenten
- Übermittlungsmethode
- Zu liefernde Ereignismethoden
- Ereignisklassenobjekt und PublisherID-Eigenschaft einer Ereignisklassenkomponente, von der der Abonnent Ereignisse empfangen möchte
Abonnements sind unabhängig von Ereignisklassenobjekten vorhanden. Sie können ein Abonnement deaktivieren, indem Sie die Eigenschaft "Enabled" auf "False" festlegen. Ein deaktiviertes Abonnement wird nicht von COM+-Ereignissen aufgerufen.
Die drei Arten von Abonnements sind wie folgt:
-
persistent
-
Persistente Abonnements befinden sich im COM+-Katalog und sind unabhängig von der Lebensdauer des Abonnenten. Persistente Abonnements überleben einen Systemneustart. Im Allgemeinen wird ein persistentes Abonnement erstellt, wenn eine Anwendung auf dem Computer eines Abonnenten installiert und entfernt wird, wenn die Anwendung entfernt wird. Nachdem ein beständiges Abonnement erstellt wurde, aktiviert COM+-Ereignisse den Abonnenten jedes Mal, wenn ein Ereignis an das Abonnement übermittelt werden soll.
Wenn ein Herausgeber eine Ereignisklasse Objekt instanziiert und aufruft, sucht das Objekt nach allen beständigen Abonnements im COM+-Katalog und erstellt eine neue Instanz jedes Objekts. Der Erstellungsprozess kann entweder direkt oder über einen Moniker für in die Warteschlange eingereihte Komponenten erfolgen. Geben Sie das Abonnentenobjekt vom SubscriberMoniker-Eigenschaft des Abonnements an. Abonnentenobjekte, die von einem beständigen Abonnement erstellt wurden, werden nach jedem Ereignisaufruf immer freigegeben.
-
vorübergehend
-
Für vorübergehende Abonnements können Sie die TransientSubscriptions Auflistung verwenden, deren übergeordnetes Objekt das Stammkatalogobjekt ist. Vorübergehende Abonnements fordern ein Ereignis für ein bestimmtes Abonnentenobjekt an, das bereits vorhanden ist. Vorübergehende Abonnements werden im COM+-Katalog gespeichert, aber das Abonnement wird gelöscht, wenn das Ereignissystem oder Betriebssystem beendet wird. Im Gegensatz zu beständigen Abonnements sind vorübergehende Abonnements an ein bestimmtes Objekt gebunden und werden nur im Ereignissystem gespeichert. Vorübergehende Abonnements können effizienter als dauerhafte Abonnements sein, aber Sie müssen deren Objektlebenszyklen verwalten. Informationen zum Registrieren eines vorübergehenden Abonnements finden Sie unter Registrieren eines vorübergehenden Abonnements.
-
Pro Benutzer
-
Pro Benutzerabonnement können Ereignisse nur übermittelt werden, wenn der Abonnent auf dem Computer des Ereignissystems angemeldet ist. Wenn sich der Abonnent anmeldet, aktiviert das Ereignissystem alle Abonnements, für die das PerUser- Flag auf TRUE festgelegt ist, und UserName- auf den Namen des angemeldeten Benutzers festgelegt ist. Wenn sich der Abonnent abmeldet, werden die Abonnements deaktiviert.
Pro Benutzerabonnements sind nur wirksam, wenn sich der Herausgeber und Abonnent auf demselben Computer befinden. Anmeldung und Abmeldung werden nur auf dem Computer des Herausgebers erkannt – nicht auf dem Computer, auf dem sich das Abonnentenobjekt befindet.
Das Ereignissystem verwendet Metaereignisse, um interessierte Abonnenten zu benachrichtigen, wenn Ereignisklassenobjekte oder Abonnements erstellt, geändert oder entfernt werden. Um Metaereignisse aus dem Ereignissystem zu empfangen, müssen Anwendungen ein Abonnement erstellen, das sich auf dem Computer des Ereignissystems befindet und die auslösende Schnittstellen-ID (IID_IEventObjectChange) angibt.
Verwandte Themen