Odeslání do vzdálené privátní fronty zpráv pomocí úlohy skriptu

Platí pro:SQL Server SSIS Integration Runtime v rámci Azure Data Factory

Fronta zpráv (známá také jako MSMQ) umožňuje vývojářům rychlou a spolehlivou komunikaci s aplikačními programy prostřednictvím odesílání a přijímání zpráv. Fronta zpráv může být umístěna na lokálním počítači nebo vzdáleném počítači a může být veřejná nebo soukromá. V integračních službách správce spojení MSMQ a úloha fronty zpráv nepodporují odesílání do soukromé fronty na vzdáleném počítači. Nicméně použitím úlohy Script je snadné odeslat zprávu do vzdálené soukromé fronty.

Note

Pokud chcete vytvořit úkol, který lze snadněji znovu použít napříč více balíčky, zvažte použití kódu v tomto ukázkovém skriptu úlohy jako výchozího bodu pro vlastní úkol. Další informace naleznete v tématu Vývoj vlastníhoúloh .

Description

Následující příklad používá existující správce spojení MSMQ spolu s objekty a metodami z jmenného prostoru System.Messaging k odeslání textu obsaženého v proměnné balíčku do vzdálené fronty soukromých zpráv. Volání na M:Microsoft. Metoda SqlServer.Dts.ManagedConnections.MSMQConn.AcquireConnection(System.Object) správce spojení MSMQ vrací objekt MessageQueue, jehož metoda Send tuto úlohu splní.

Pro konfiguraci tohoto příkladu Script Task

  1. Vytvořte správce spojení MSMQ s výchozím názvem. Nastavte cestu platné vzdálené soukromé fronty v následujícím formátu:

    FORMATNAME:DIRECT=OS:<computername>\private$\<queuename>  
    
  2. Vytvořte proměnnou Integration Services s názvem MessageText typu String , která předá text zprávy do skriptu. Zadejte výchozí zprávu jako hodnotu proměnné.

  3. Přidejte skriptovou úlohu na designovou plochu a upravte ji. Na záložce Script v Editoru úloh skriptů přidejte proměnnou MessageText do vlastnosti ReadOnlyVariables , aby byla proměnná dostupná uvnitř skriptu.

  4. Klikněte na Edit Script pro otevření editoru skriptů Microsoft Visual Studio Tools for Applications (VSTA).

  5. Přidejte odkaz do skriptového projektu na jmenný prostor System.Messaging .

  6. Nahraďte obsah okna skriptu kódem v následující sekci.

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;  
  
        }  
  
}