Abonnements
Abonnementdaten befinden sich im COM+-Abonnementkatalog. Ein Abonnement kann entweder mithilfe des Component Services-Verwaltungstools oder programmgesteuert mithilfe der ICOMAdminCatalog::InstallComponent-Schnittstelle erstellt werden.
Die SubscriptionsForComponent-Auflistung wird verwendet, um Informationen zu Abonnements hinzuzufügen, zu löschen oder zu ändern. Die SubscriptionsForComponent-Auflistung ist eine untergeordnete Sammlung einer Komponente. Um ein Abonnement hinzuzufügen, rufen Sie die SubscriptionsForComponent-Auflistung der Komponente ab, und verwenden Sie die Add-Methode , um der Auflistung einen Eintrag hinzuzufügen. Um die verschiedenen Eigenschaften des Abonnementobjekts einzurichten, verwenden Sie die Value-Eigenschaft . Um die Änderungen zu speichern, verwenden Sie SaveChanges für das SubscriptionsForComponent-Auflistungsobjekt .
Sie können auch das Component Services-Verwaltungstool verwenden, um einige, aber nicht alle Abonnementeigenschaften zu ändern. Abonnements geben die folgenden Informationen an:
- Identität und Standort des Abonnenten
- Bereitstellungsmethode
- 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 Enabled-Eigenschaft auf False festlegen. Ein deaktiviertes Abonnement wird von COM+-Ereignissen nicht aufgerufen.
Die drei Arten von Abonnements sind wie folgt:
-
Persistente
-
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 dauerhaftes Abonnement erstellt, wenn eine Anwendung auf dem Computer eines Abonnenten installiert und entfernt wird, wenn die Anwendung entfernt wird. Nachdem ein persistentes Abonnement erstellt wurde, aktiviert COM+-Ereignisse den Abonnenten jedes Mal, wenn ein Ereignis an ihn übermittelt werden soll.
Wenn ein Herausgeber ein Ereignisklassenobjekt instanziiert und aufruft, sucht das Objekt nach allen persistenten Abonnements im COM+-Katalog und erstellt eine neue instance jedes Objekts. Der Erstellungsprozess kann entweder direkt oder über einen Moniker für Komponenten in der Warteschlange erfolgen. Geben Sie das Abonnentenobjekt durch die SubscriberMoniker-Eigenschaft des Abonnements an. Abonnentenobjekte, die von einem persistenten Abonnement erstellt wurden, werden immer nach jedem Ereignisaufruf freigegeben.
-
Vorübergehende
-
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 das Betriebssystem beendet wird. Im Gegensatz zu persistenten Abonnements sind vorübergehende Abonnements an ein bestimmtes Objekt gebunden und werden nur im Ereignissystem gespeichert. Vorübergehende Abonnements können effizienter sein als persistente Abonnements, aber Sie müssen deren Objektlebenszyklus verwalten. Informationen zum Registrieren eines vorübergehenden Abonnements finden Sie unter Registrieren eines vorübergehenden Abonnements.
-
Pro Benutzer
-
Pro Benutzerabonnement können Ereignisse nur dann übermittelt werden, wenn der Abonnent am Computer des Ereignissystems angemeldet ist. Wenn sich der Abonnent anmeldet, aktiviert das Ereignissystem alle Abonnements, für die das ProUser-Flag auf TRUE festgelegt ist, und UserName auf den Namen des angemeldeten Benutzers. Wenn sich der Abonnent abmeldet, werden die Abonnements deaktiviert.
Abonnements pro Benutzer sind nur wirksam, wenn sich 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. Zum Empfangen von Metaereignissen vom Ereignissystem müssen Anwendungen ein Abonnement erstellen, das sich auf dem Computer des Ereignissystems befindet und die Id der Auslösenschnittstelle (IID_IEventObjectChange) angibt.
Zugehörige Themen