Wysyłanie do kolejki wiadomości prywatnych zdalnie z zadań skryptu
kolejkowanie komunikatów (usługa MSMQ) ułatwia deweloperom komunikować aplikacje szybko i niezawodnie przez wysyłanie i odbieranie wiadomości.Kolejki wiadomości może być umieszczona na komputerze lokalnym lub zdalnym i może być publicznych lub prywatnych.W Integration Services, Menedżer połączeń usługi usługa MSMQ i zadanie usługi kolejkowania wiadomości nie obsługują wysyłania do kolejki prywatnej na komputerze zdalnym.Jednak przy użyciu zadania skryptu, jest łatwe wysyłanie wiadomości do kolejki prywatnej zdalnej.
Ostrzeżenie
Aby utworzyć zadanie łatwiej można użyć ponownie w wielu pakietach, należy rozważyć przy użyciu kodu w tym przykładzie zadanie skryptu jako punktu wyjścia dla niestandardowego zadania.Aby uzyskać więcej informacji, zobacz Opracowywania niestandardowego zadania.
Opis
W poniższym przykładzie użyto istniejących menedżer połączeń usługi usługa MSMQ, na wraz z obiektów i metod z System.Messaging obszaru nazw do wysyłania tekstu zawartego w zmiennej pakiet do kolejki zdalnej prywatnej wiadomości.Wywołanie M:Microsoft.SqlServer.Dts.ManagedConnections.MSMQConn.AcquireConnection(System.Object) Metoda menedżer połączeń usługi usługa MSMQ zwraca MessageQueue obiekt, którego Send metoda programowa zadań.
Aby skonfigurować ten przykład zadania skryptu
Utwórz usługa MSMQ menedżer połączeń nazwę domyślną.Ustaw ścieżka prawidłowego zdalnej kolejki prywatnej, w następującym formacie:
FORMATNAME:DIRECT=OS:<computername>\private$\<queuename>
Tworzenie Integration Services zmienną o nazwie MessageText typu String do przekazywania wiadomości tekst script.Wpisz wiadomość domyślną wartość zmiennej.
Dodawanie zadania skryptu do powierzchni projektu i edytować.Na skryptu karcie Script Editor zadania, dodać MessageText do zmiennej ReadOnlyVariables właściwość udostępnienie zmiennej wewnątrz skryptu.
Click Edit Script to open the Microsoft Visual Studio Tools for Applications (VSTA) script editor.
Dodaj odwołanie projektu skryptu w System.Messaging obszaru nazw.
Zamień zawartość okna Skrypt kodu w poniższej sekcji.
Kod
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;
}
}
|