Partager via


Envoi vers une file d'attente de messages privée distante à l'aide de la tâche de script

Message Queuing (également appelé MSMQ) permet aux développeurs de communiquer de façon simple, rapide et fiable avec des programmes d'application par l'envoi et la réception de messages. Une file d'attente de messages peut se trouver sur l'ordinateur local ou un ordinateur distant et être publique ou privée. Dans Integration Services, le gestionnaire de connexions MSMQ et la tâche MSMQ ne prennent pas en charge l'envoi vers une file d'attente privée située sur un ordinateur distant. Toutefois, la tâche de script permet d'envoyer facilement un message à une file d'attente privée distante.

[!REMARQUE]

Si vous souhaitez créer une tâche plus facilement réutilisable sur plusieurs packages, servez-vous du code de l'exemple de tâche de script comme point de départ d'une tâche personnalisée. Pour plus d'informations, consultez Développement d'une tâche personnalisée.

Description

L'exemple suivant utilise un gestionnaire de connexions MSMQ existant, avec des objets et des méthodes de l'espace de noms System.Messaging, pour envoyer le texte contenu dans une variable de package à une file d'attente de messages privée distante. L'appel à la méthode M:Microsoft.SqlServer.Dts.ManagedConnections.MSMQConn.AcquireConnection(System.Object) du gestionnaire de connexions MSMQ retourne un objet MessageQueue dont la méthode Send exécute cette tâche.

Pour configurer cet exemple de tâche de script

  1. Créez un gestionnaire de connexions MSMQ avec le nom par défaut. Définissez le chemin d'accès d'une file d'attente privée distante valide, dans le format suivant :

    FORMATNAME:DIRECT=OS:<computername>\private$\<queuename>
    
  2. Créez une variable Integration Services nommée MessageText de type String pour transférer le texte du message dans le script. Entrez un message par défaut en tant que valeur de la variable.

  3. Ajoutez une tâche de script à l'aire de conception et modifiez-la. Sous l'onglet Script de l'éditeur de tâche de script, ajoutez la variable MessageText à la propriété ReadOnlyVariables pour rendre la variable disponible à l'intérieur du script.

  4. Cliquez sur Modifier le script pour ouvrir l'éditeur de script MicrosoftVisual Studio Tools for Applications (VSTA).

  5. Dans le projet de script, ajoutez une référence à l'espace de noms System.Messaging.

  6. Remplacez le contenu de la fenêtre de script par le code dans la section suivante.

Code

Imports System
Imports Microsoft.SqlServer.Dts.Runtime
Imports System.Messaging

Public Class ScriptMain

    Public Sub Main()

        Dim remotePrivateQueue As MessageQueue
        Dim messageText As String

        remotePrivateQueue = _
            DirectCast(Dts.Connections("Message Queue Connection Manager").AcquireConnection(Dts.Transaction), _
            MessageQueue)
        messageText = DirectCast(Dts.Variables("MessageText").Value, String)
        remotePrivateQueue.Send(messageText)

        Dts.TaskResult = ScriptResults.Success

    End Sub

End Class
using System;
using Microsoft.SqlServer.Dts.Runtime;
using System.Messaging;

public class ScriptMain
{

    public void Main()
        {

            MessageQueue remotePrivateQueue = new MessageQueue();
            string messageText;

            
            remotePrivateQueue = (MessageQueue)(Dts.Connections["Message Queue Connection Manager"].AcquireConnection(Dts.Transaction) as MessageQueue);
            messageText = (string)(Dts.Variables["MessageText"].Value);
            remotePrivateQueue.Send(messageText);

            Dts.TaskResult = (int)ScriptResults.Success;

        }

}
Icône Integration Services (petite) Rester à jour avec Integration Services

Pour obtenir les derniers téléchargements, articles, exemples et vidéos de Microsoft, ainsi que des solutions sélectionnées par la communauté, visitez la page Integration Services sur MSDN ou TechNet :

Pour recevoir une notification automatique de ces mises à jour, abonnez-vous aux flux RSS disponibles sur la page.

Voir aussi

Concepts