Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
SSIS Integration Runtime in Azure Data Factory
Message Queuing (ook bekend als MSMQ) maakt het voor ontwikkelaars gemakkelijk om snel en betrouwbaar met applicatieprogramma's te communiceren door berichten te verzenden en ontvangen. Een berichtenwachtrij kan zich bevinden op de lokale computer of een externe computer, en kan openbaar of privé zijn. In Integration Services ondersteunen de MSMQ-verbindingsmanager en de Message Queue-taak geen verzending naar een privéwachtrij op een externe computer. Door de Script-taak te gebruiken, is het echter eenvoudig om een bericht naar een externe privéwachtrij te sturen.
Note
Als je een taak wilt maken die je gemakkelijker kunt hergebruiken in meerdere pakketten, overweeg dan de code in dit scriptvoorbeeld als uitgangspunt voor een aangepaste taak. Zie Een aangepaste taak ontwikkelenvoor meer informatie.
Description
Het volgende voorbeeld gebruikt een bestaande MSMQ-verbindingsbeheerder, samen met objecten en methoden uit de System.Messaging-naamruimte, om de tekst in een pakketvariabele naar een externe privéberichtwachtrij te sturen. De oproep aan de M:Microsoft. SqlServer.Dts.ManagedConnections.MSMQConn.AcquireConnection(System.Object)-methode van de MSMQ-verbindingsmanager levert een MessageQueue-object waarvan de Verzendmethode deze taak uitvoert.
Om dit voorbeeld van een scripttaak te configureren,
Maak een MSMQ-verbindingsmanager aan met de standaardnaam. Stel het pad in van een geldige externe privéwachtrij, in het volgende formaat:
FORMATNAME:DIRECT=OS:<computername>\private$\<queuename>Maak een Integration Services-variabele genaamd MessageText van het type String aan om de berichttekst aan het script door te geven. Voer een standaardbericht in als waarde van de variabele.
Voeg een Scripttaak toe aan het ontwerpoppervlak en bewerk die. Voeg op het tabblad Script van de Script Taakeditor de variabele
MessageTexttoe aan de eigenschap ReadOnlyVariables om de variabele beschikbaar te maken binnen het script.Klik op Script bewerken om de scripteditor Microsoft Visual Studio Tools for Applications (VSTA) te openen.
Voeg een referentie toe in het scriptproject aan de System.Messaging-naamruimte .
Vervang de inhoud van het scriptvenster door de code in de volgende sectie.
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;
}
}