Utilisation de MSMQ comme transport RPC
Le sous-système RPC prend en charge l’utilisation de MSMQ comme transport en mode synchrone et asynchrone.
Le mode synchrone utilise des appels de procédure distante conventionnelle. Ces appels utilisent des points de terminaison connus et le transport de file d’attente de messages , ncadg_mq, comme protocole de transport. En mode synchrone, vos procédures distantes peuvent avoir des paramètres [ in] et [ out] et peuvent utiliser les services de sécurité RPC standard. Le sous-système RPC crée une file d’attente de réponses pour les appels distants contenant des paramètres [out]. Le mode synchrone est utile pour les applications où le client doit recevoir des données du serveur. La main limitation de ce mode est que, comme avec les appels de procédure distante conventionnelle, le client et le serveur doivent être en cours d’exécution et rester en cours d’exécution pendant la durée de l’appel.
Le mode asynchrone permet aux applications clientes d’effectuer des appels vers le serveur et de retourner immédiatement, quel que soit l’état de l’application serveur ou de l’ordinateur serveur. Il rend également un sous-ensemble de fonctionnalités MSMQ disponibles pour la gestion des files d’attente de messages et du flux d’informations. La fonction RpcBindingSetOption vous permet de contrôler la qualité de service, la priorité des appels, la journalisation, la sécurité et la durée de vie de la file d’attente des processus serveur. La fonction RpcServerUseProtseqEpEx vous permet de spécifier des attributs de la file d’attente de processus serveur, tels que la persistance de la file d’attente, l’authentification et le chiffrement.
Vous implémentez MSMQ asynchrone comme vous le feriez pour MSMQ synchrone. Vous devez utiliser des points de terminaison connus et définir le protocole de transport à ncadg_mq. Dans votre fichier IDL, appliquez l’attribut message aux fonctions qui utilisent la mise en file d’attente de messages asynchrone. Notez que les fonctions de message peuvent avoir des paramètres [in] uniquement.