Utilisation d’événements COM+ avec des composants mis en file d’attente COM+
Le service d’événements COM+ est utilisé pour gérer la remise des événements des éditeurs aux abonnés. Le service de composants mis en file d’attente COM+ peut être utilisé pour rendre le temps de traitement de l’éditeur et de l’abonné indépendant en mettant en file d’attente le message de l’éditeur et en le relisant ultérieurement à l’abonné. La nécessité ou non d’utiliser le service de composants mis en file d’attente dépend de la logique métier sous-jacente de votre application. Si vous avez besoin d’événements indépendants du temps, vous pouvez les créer à l’aide du service d’événements COM+ avec le service de composants en file d’attente COM+.
Notes
Pour plus d’informations sur l’utilisation du service de composants mis en file d’attente COM+, consultez Composants mis en file d’attente COM+.
Le service composants mis en file d’attente maintient l’appel de l’ordre de méthode dans un seul message. L’enregistreur traite par lot tous les appels de méthode dans un message, puis le lecteur appelle ces méthodes dans l’ordre lorsque le message est traité.
Un enregistreur et un lecteur de composants mis en file d’attente peuvent être positionnés à l’un des deux emplacements suivants :
- Entre l’éditeur et l’objet d’événement
- Entre l’objet d’événement et l’abonné
Si vous positionnez l’enregistreur et le lecteur entre l’éditeur et l’objet d’événement, vous rendez le composant de classe d’événements en file d’attente. Le composant de classe d’événements doit être marqué pour la mise en file d’attente et être activé par le lecteur dans un processus distinct de l’éditeur.
Pour remettre des événements de manière asynchrone, composez l’enregistreur et le lecteur entre l’objet d’événement et l’abonné, puis définissez l’attribut Queued de l’objet d’abonnement. Cela définit SubscriberMoniker comme suit : « queue:/new:/{12345678-1234-1234-1234-123456789012} ».
Il existe un ordre d’implication de remise à prendre en compte lors de l’utilisation de composants mis en file d’attente dans une situation d’événement. Étant donné que le service composants mis en file d’attente enregistre et lit tous les appels dans la durée de vie d’un seul objet dans un message, tous les appels sont relu dans l’ordre dans lequel ils ont été effectués. Toutefois, s’il existe plusieurs sessions avec plusieurs objets, l’ordre ne peut pas être garanti. Si l’ordre est important, assurez-vous que les appels qui doivent être lus dans l’ordre résident sur le même objet instance.
Rubriques connexes