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
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>
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.
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.Fare clic su Modifica script per aprire l'editor di script di Microsoft Visual Studio Tools for Applications (VSTA).
Aggiungere un riferimento nel progetto di script allo spazio dei nomi System.Messaging.
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;
}
}