Architecture des composants mis en file d’attente
Le service de composants en file d’attente COM+ améliore le modèle de programmation COM en fournissant un environnement dans lequel un composant peut être appelé de manière synchrone (temps réel) ou asynchrone (mise en file d’attente). Un composant n’a pas besoin de savoir s’il est utilisé dans un contexte en temps réel ou en file d’attente.
Les applications de messagerie sont comme des transactions de courrier électronique entre des programmes. Le demandeur envoie un message au serveur ; lorsque le serveur y accède, le message est traité. Comme le courrier électronique, un système de messagerie doit gérer les détails du réseau et s’assurer que le message passe du client au serveur. Dans l’infrastructure des composants mis en file d’attente, Message Queuing en est responsable.
Le service de composants en file d’attente COM+ se compose des éléments suivants :
- Enregistreur (côté client ou côté envoi)
- Écouteur (côté serveur ou réception)
- Lecteur (côté serveur ou réception)
Enregistreur
Dans un scénario classique de composants mis en file d’attente, le client appelle un composant mis en file d’attente. L’appel est effectué à l’enregistreur de composants mis en file d’attente, qui le package dans le cadre d’un message sur le serveur et le place dans une file d’attente. L’enregistreur marshale le contexte de sécurité du client dans le message et enregistre tous les appels de méthode du client. Dans son rôle de proxy pour le composant serveur, l’enregistreur sélectionne les interfaces à partir des interfaces pouvant être mises en file d’attente dans le catalogue COM+.
Une représentation de l’enregistrement est envoyée à Message Queuing en tant que message à envoyer à un serveur. Lorsque le composant mis en file d’attente a le paramètre d’attribut de transaction Obligatoire ou Pris en charge, Message Queuing n’accepte la remise du message que si la transaction côté client se valide et que la file d’attente Message Queuing est transactionnelle, ce qui est la valeur par défaut normalement établie. Lorsque le paramètre d’attribut de transaction est Nécessite nouveau, Message Queuing peut accepter le message même si la transaction côté client abandonne. Pour plus d’informations sur les transactions, consultez Queuing message transactionnel.
Écouteur
L’écouteur de composants mis en file d’attente récupère le message de la file d’attente et le transmet au lecteur de composants mis en file d’attente.
Le joueur
Le joueur désactive le contexte de sécurité du client côté serveur, puis appelle le composant serveur et effectue les mêmes appels de méthode. Les appels de méthode ne sont pas lus par le lecteur tant que le composant client n’est pas terminé et que la transaction qui a enregistré les appels de méthode n’a pas été validée.
The Message Mover
Le sélecteur de messages des composants mis en file d’attente est un utilitaire qui déplace tous les messages Message Queuing ayant échoué d’une file d’attente vers une autre afin qu’ils puissent être retentés. L’utilitaire de déplacement de messages est un objet Automation qui peut être appelé avec un VBScript ; Pour plus d’informations, consultez Gestion des erreurs.