Condividi tramite


Invio di messaggi a una coda privata remota tramite l'attività Script

Si applica a: SQL Server SSIS Integration Runtime in Azure Data Factory

Accodamento messaggi (noto anche come MSMQ) consente agli sviluppatori di applicazioni di comunicare in modo rapido, semplice e affidabile con i programmi applicativi mediante l'invio e la ricezione di messaggi. Una coda di messaggi può trovarsi nel computer locale o in un computer remoto e può essere pubblica o privata. In Integration Services, la gestione connessione MSMQ e l'attività Message Queue non supportano l'invio a una coda privata in un computer remoto. Tuttavia, utilizzando l'attività Script, è possibile inviare facilmente un messaggio a una coda privata remota.

Nota

Se si desidera creare un'attività da riutilizzare più facilmente con più pacchetti, è possibile utilizzare il codice di questo esempio di attività Script come punto iniziale per un'attività personalizzata. Per altre informazioni, vedere Sviluppo di un'attività personalizzata.

Descrizione

Nell'esempio seguente viene usata una gestione connessione MSMQ esistente, insieme agli oggetti e ai metodi dello spazio dei nomi System.Messaging, per inviare il testo contenuto in una variabile di pacchetto a una coda di messaggi privata remota. La chiamata al metodo M:Microsoft.SqlServer.Dts.ManagedConnections.MSMQConn.AcquireConnection(System.Object) della gestione connessione MSMQ restituisce un oggetto MessageQueue il cui metodo Send porta a termine questa attività.

Per configurare l'esempio di attività Script

  1. Creare una gestione connessione MSMQ con il nome predefinito. Impostare il percorso di una coda privata remota valida, nel formato seguente:

    FORMATNAME:DIRECT=OS:<computername>\private$\<queuename>  
    
  2. Creare una variabile di Integration Services denominata MessageText di tipo String per passare il testo del messaggio nello script. Immettere un messaggio predefinito come valore della variabile.

  3. Aggiungere un'attività Script all'area di progettazione e modificarla. Nella scheda Script dell'Editor attività Script aggiungere la variabile MessageText alla proprietà ReadOnlyVariables per rendere disponibile la variabile all'interno dello script.

  4. Fare clic su Modifica script per aprire l'editor di script di Microsoft Visual Studio Tools for Applications (VSTA).

  5. Aggiungere un riferimento nel progetto di script allo spazio dei nomi System.Messaging.

  6. Sostituire il contenuto della finestra dello script con il codice nella sezione seguente.

Codice

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

Vedi anche

Attività Message Queue