Freigeben über


Senden mit dem Skripttask an eine private Remotemeldungswarteschlange

Message Queuing (auch als MSMQ bezeichnet) bietet Entwicklern eine einfache Möglichkeit, durch das Senden und Empfangen von Meldungen schnell und zuverlässig mit Anwendungsprogrammen zu kommunizieren. Meldungswarteschlangen können sich auf einem lokalen oder einem Remotecomputer befinden und öffentlich oder privat sein. In Integration Services unterstützen der MSMQ-Verbindungs-Manager und der Task Nachrichtenwarteschlange das Senden an eine private Warteschlange auf einem Remotecomputer nicht. Mit dem Skripttask können Meldungen jedoch ganz einfach an eine private Remotewarteschlange gesendet werden.

HinweisHinweis

Wenn Sie einen Task erstellen möchten, den Sie einfacher in mehreren Paketen wiederverwenden können, empfiehlt es sich, den Code in diesem Skripttaskbeispiel als Ausgangspunkt für einen benutzerdefinierten Task zu verwenden. Weitere Informationen finden Sie unter Entwickeln eines benutzerdefinierten Tasks.

Beschreibung

Im folgenden Beispiel werden ein vorhandener MSMQ-Verbindungs-Manager sowie Objekte und Methoden des System.Messaging-Namespace verwendet, um in einer Paketvariablen enthaltenen Text an eine private Remotemeldungswarteschlange zu senden. Der Aufruf der M:Microsoft.SqlServer.Dts.ManagedConnections.MSMQConn.AcquireConnection(System.Object)-Methode des MSMQ-Verbindungs-Managers gibt ein MessageQueue-Objekt zurück, dessen Send-Methode diese Aufgabe erfüllt.

So konfigurieren Sie dieses Skripttaskbeispiel

  1. Erstellen Sie einen MSMQ-Verbindungs-Manager mit dem Standardnamen. Geben Sie den Pfad einer gültigen privaten Remotewarteschlange im folgenden Format an:

    FORMATNAME:DIRECT=OS:<computername>\private$\<queuename>
    
  2. Erstellen Sie eine Integration Services-Variable namens MessageText des Typs String, um den Meldungstext an das Skript zu übergeben. Geben Sie eine Standardmeldung als Wert der Variablen ein.

  3. Fügen Sie der Entwurfsoberfläche einen Skripttask hinzu, und bearbeiten Sie ihn. Um die Variable im Skript verfügbar zu machen, fügen Sie die MessageText-Variable im Scripttask-Editor auf der Registerkarte Skript zur ReadOnlyVariables-Eigenschaft hinzu.

  4. Klicken Sie auf Skript bearbeiten, um den MicrosoftVisual Studio Tools for Applications (VSTA)-Skript-Editor zu öffnen.

  5. Fügen Sie zum System.Messaging-Namespace einen Verweis im Skriptprojekt hinzu.

  6. Ersetzen Sie den Inhalt des Skriptfensters durch den Code im folgenden Abschnitt.

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;

        }

}
Integration Services (kleines Symbol) Bleiben Sie mit Integration Services auf dem neuesten Stand

Die neuesten Downloads, Artikel, Beispiele und Videos von Microsoft sowie ausgewählte Lösungen aus der Community finden Sie auf der Integration Services-Seite von MSDN oder TechNet:

Abonnieren Sie die auf der Seite verfügbaren RSS-Newsfeeds, um automatische Benachrichtigungen zu diesen Aktualisierungen zu erhalten.

Siehe auch

Konzepte