Partager via


Abonnements

Les données d’abonnement se trouvent dans le catalogue COM+ d’abonnement. Un abonnement peut être créé à l’aide de l’outil d’administration des services de composants ou par programmation à l’aide de l’interface ICOMAdminCatalog ::InstallComponent.

La collection SubscriptionsForComponent est utilisée pour ajouter, supprimer ou modifier des informations relatives aux abonnements. La collection SubscriptionsForComponent est une collection enfant à un composant. Pour ajouter un abonnement, obtenez la collection SubscriptionsForComponent du composant et utilisez la méthode Add pour ajouter une entrée à la collection. Pour configurer les différentes propriétés de l’objet d’abonnement, utilisez la propriété Value. Pour enregistrer les modifications, utilisez SaveChanges sur l’objet de collection SubscriptionsForComponent.

Vous pouvez également utiliser l’outil d’administration des services de composants pour modifier certaines propriétés de l’abonnement, mais pas toutes. Les abonnements spécifient les informations suivantes :

  • Identité et emplacement de l’abonné
  • Méthode de remise
  • Méthodes d’événement à remettre
  • Objet de classe d’événements et propriété PublisherID d’un composant de classe d’événements à partir duquel l’abonné souhaite recevoir des événements

Les abonnements existent indépendamment des objets de classe d’événements. Vous pouvez désactiver un abonnement en définissant la propriété Enabled sur False. Un abonnement désactivé n’est pas appelé par les événements COM+.

Les trois types d’abonnements sont les suivants :

persistant

Les abonnements persistants résident dans le catalogue COM+ et sont indépendants de la durée de vie de l’abonné. Les abonnements persistants survivent à un redémarrage du système. En règle générale, un abonnement persistant est créé lorsqu’une application est installée sur l’ordinateur d’un abonné et supprimée lorsque l’application est supprimée. Une fois qu’un abonnement persistant est créé, COM+ Events active l’abonné chaque fois qu’un événement doit être remis à celui-ci.

Lorsqu’un éditeur instancie et effectue un appel sur une classe d’événements objet, l’objet recherche tous les abonnements persistants dans le catalogue COM+ et crée une nouvelle instance de chaque objet. Le processus de création peut être direct ou via un moniker pour les composants mis en file d’attente. Spécifiez l’objet abonné par l'SubscriberMoniker propriété de l’abonnement. Les objets abonnés créés par un abonnement persistant sont toujours publiés après chaque appel d’événement.

temporaire

Pour les abonnements temporaires, vous pouvez utiliser les TransientSubscriptions collection, dont l’objet parent est l’objet catalogue racine. Les abonnements temporaires demandent un événement pour un objet abonné spécifique qui existe déjà. Les abonnements temporaires sont stockés dans le catalogue COM+, mais l’abonnement est supprimé si le système d’événements ou le système d’exploitation est arrêté. Contrairement aux abonnements persistants, les abonnements temporaires sont liés à un objet particulier et sont stockés uniquement dans le système d’événements. Les abonnements temporaires peuvent être plus efficaces que les abonnements persistants, mais vous devez gérer leurs cycles de vie d’objet. Pour plus d’informations sur l’inscription d’un abonnement temporaire, consultez Inscription d’un abonnement temporaire.

par utilisateur

Les abonnements par utilisateur peuvent fournir des événements uniquement lorsque l’abonné est connecté à l’ordinateur du système d’événements. Lorsque l’abonné se connecte, le système d’événements active tous les abonnements sur lesquels l’indicateur PerUser est défini sur TRUE et UserName est défini sur le nom de l’utilisateur connecté. Lorsque l’abonné se déconnecte, les abonnements sont désactivés.

Les abonnements par utilisateur sont effectifs uniquement lorsque l’éditeur et l’abonné se trouvent sur le même ordinateur. L’ouverture de session et la déconnexion sont détectées uniquement sur l’ordinateur de l’éditeur, et non sur l’ordinateur sur lequel réside l’objet abonné.

Le système d’événements utilise des méta-événements pour avertir les abonnés intéressés chaque fois que des objets ou abonnements de classe d’événements sont créés, modifiés ou supprimés. Pour recevoir des méta-événements du système d’événements, les applications doivent créer un abonnement qui réside sur l’ordinateur du système d’événements et qui spécifie l’ID d’interface de déclenchement (IID_IEventObjectChange).

les événements de filtrage dans com+

publication et remise d’événements dans com+

l’objet de classe d’événements COM+

utiliser des événements COM+ avec des composants com+ mis en file d’attente