Partager via


Message Queue Task

La tâche MSMQ vous permet d’utiliser Message Queuing (MSMQ) pour envoyer et recevoir des messages entre des packages SQL Server Integration Services ou pour envoyer des messages à une file d’attente d’application traitée par une application personnalisée. Ces messages peuvent être composés de texte brut, de fichiers ou de variables et leurs valeurs.

L'utilisation de la tâche MSMQ vous permet de coordonner des opérations à l'échelle de votre entreprise. Les messages peuvent être placés dans la file d'attente et remis ultérieurement si la destination est indisponible ou occupée ; par exemple, la tâche peut mettre en file d'attente les messages destinés à l'ordinateur portable hors connexion des représentants commerciaux, qui reçoivent leurs messages lorsqu'ils se connectent au réseau. Vous pouvez utiliser la tâche MSMQ pour effectuer les opérations suivantes :

  • Retarder l'exécution d'une tâche jusqu'à la validation d'autres packages. Par exemple, sur chacun de vos sites de vente au détail, après une maintenance nocturne, une tâche MSMQ envoie un message à l'ordinateur de l'entreprise. Un package s'exécutant sur cet ordinateur contient des tâches MSMQ, chacune attendant le message d'un site de vente au détail spécifique. Lorsqu'un message d'un site arrive, une tâche télécharge des données à partir de ce site. Une fois tous les sites validés, le package calcule les totaux récapitulatifs.

  • Envoyer des fichiers de données à l'ordinateur qui les traite. Par exemple, le résultat de la caisse enregistreuse d'un restaurant peut être envoyé dans un message de fichier de données au système du paiement des salaires de l'entreprise, où sont extraites les données liées aux pourboires des serveurs.

  • Distribuer des fichiers à l'intérieur de votre entreprise. Par exemple, un package peut utiliser une tâche MSMQ pour envoyer un fichier de package à un autre ordinateur. Un package s'exécutant sur l'ordinateur de destination utilise alors une tâche MSMQ pour récupérer et enregistrer le package localement.

Lors de l'envoi ou de la réception de messages, la tâche MSMQ utilise l'un des quatre types de messages suivants : fichier de données, chaîne, message de type chaîne pour la variable ou variable. Le type de message « message de type chaîne pour la variable » peut être utilisé uniquement lors de la réception de messages.

La tâche utilise un gestionnaire de connexions MSMQ pour se connecter à une file d'attente de messages. Pour plus d’informations, consultez Gestionnaire de connexions MSMQ. Pour plus d’informations sur Message Queuing (MSMQ), consultez MSDN Library.

La tâche MSMQ exige que le service Integration Services soit installé. Parmi les composants SQL Server que vous pouvez sélectionner dans la page Composants à installer ou Sélection de fonctionnalités de l’Assistant Installation de SQL Server , certains n’installent qu’un sous-ensemble partiel des composants Integration Services . Ces composants sont utiles pour des tâches spécifiques, mais les fonctionnalités de Integration Services s'en trouvent limitées. Par exemple, l'option SQL Server Data Tools (SSDT) installe les composants Integration Services nécessaires pour concevoir un package mais le service Integration Services n'est pas installé, par conséquent la tâche MSMQ ne fonctionne pas. Pour garantir une installation complète de Integration Services, vous devez sélectionner Integration Services dans la page Composants à installer . Pour plus d’informations sur l’installation et l’exécution de la tâche MSMQ, consultez Installer Integration Services.

Notes

La tâche MSMQ ne parvient pas à assurer la conformité avec le standard FIPS (Federal Information Processing Standard) 140-2 lorsque le système d'exploitation de l'ordinateur est configuré en mode FIPS et que la tâche utilise le chiffrement. Si la tâche MSMQ n'utilise pas le chiffrement, elle peut s'exécuter correctement.

Types de messages

Vous pouvez configurer les types de messages fournis par la tâche MSMQ des manières suivantes :

  • Un message Data file spécifie que le message est contenu dans un fichier. Lors de la réception de messages, vous pouvez configurer la tâche de façon à enregistrer le fichier, remplacer un fichier existant et spécifier le package à partir duquel la tâche peut recevoir des messages.

  • Un message String spécifie le message en tant que chaîne. Lors de la réception de messages, vous pouvez configurer la tâche de façon à comparer la chaîne reçue avec une chaîne définie par l'utilisateur et exécuter une action en fonction du résultat de la comparaison. La comparaison de chaînes peut être exacte, sensible ou non à la casse, ou utiliser une sous-chaîne.

  • String message to variable spécifie le message source en tant que chaîne envoyée à une variable de destination. Vous pouvez configurer la tâche de façon à comparer la chaîne reçue avec une chaîne définie par l'utilisateur à l'aide d'une comparaison exacte, non sensible à la casse ou de sous-chaîne. Ce type de message est disponible uniquement lorsque la tâche reçoit des messages.

  • Variable spécifie que le message contient une ou plusieurs variables. Vous pouvez configurer la tâche de façon à spécifier les noms des variables contenues dans le message. Lors de la réception de messages, vous pouvez configurer la tâche de façon à spécifier à la fois le package à partir duquel elle peut recevoir des messages et la variable qui est la destination du message.

sending messages

Lorsque vous configurez la tâche MSMQ pour envoyer des messages, vous pouvez utiliser l'un des algorithmes de chiffrement actuellement pris en charge par la technologie Message Queuing, RC2 et RC4, pour chiffrer le message. Ces deux algorithmes de chiffrement sont aujourd'hui considérés comme faibles d'un point de vue du chiffrement par rapport aux algorithmes plus récents, non encore pris en charge par la technologie Microsoft Message Queuing. Par conséquent, vous devez minutieusement évaluer vos besoins en matière de chiffrement si vous souhaitez envoyer des messages à l'aide de la tâche MSMQ.

réception de messages

Lors de la réception de messages, la tâche MSMQ peut être configurée des manières suivantes :

  • Contournement du message ou suppression du message de la file d'attente.

  • Spécification d'un délai d'attente.

  • Échec en cas d'expiration du délai d'attente.

  • Remplacement d'un fichier existant si le message est stocké dans un Data file.

  • Enregistrement du fichier de message sous un nom de fichier différent si le message utilise le type Data file message.

Messages de journalisation personnalisés disponibles dans la tâche MSMQ

Le tableau suivant répertorie les entrées de journal personnalisées de la tâche MSMQ. Pour plus d’informations, consultez Journalisation Integration Services (SSIS) et Messages personnalisés pour la journalisation.

Entrée du journal Description
MSMQAfterOpen Indique que la tâche a fini d'ouvrir la file d'attente des messages.
MSMQBeforeOpen Indique que la tâche a commencé l'ouverture de la file d'attente des messages.
MSMQBeginReceive Indique que la tâche a commencé la réception d'un message.
MSMQBeginSend Indique que la tâche a commencé l'envoi d'un message.
MSMQEndReceive Indique que la tâche a terminé la réception d'un message.
MSMQEndSend Indique que la tâche a terminé l'envoi d'un message.
MSMQTaskInfo Fournit des informations détaillées concernant la tâche.
MSMQTaskTimeOut Indique que le délai de la tâche a expiré.

Configuration de la tâche MSMQ

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par programmation. Pour plus d’informations sur les propriétés que vous pouvez définir dans SSIS Designer, cliquez sur l’une des rubriques suivantes :

Pour plus d’informations sur la définition par programmation de ces propriétés, consultez la documentation relative à la classe Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask dans le Guide du développeur.

Pour plus d’informations sur la façon de définir ces propriétés dans le concepteur SSIS , consultez Définir les propriétés d’une tâche ou d’un conteneur.

Voir aussi

Tâches Integration Services
Flux de contrôle