Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
SSIS Integration Runtime em Azure Data Factory
A Fila de Mensagens (também conhecida como MSMQ) facilita a comunicação rápida e fiável dos programadores com os programas de aplicação, enviando e recebendo mensagens. Uma fila de mensagens pode estar localizada no computador local ou num computador remoto, podendo ser pública ou privada. Nos Serviços de Integração, o gestor de conexões MSMQ e a tarefa da Fila de Mensagens não suportam enviar para uma fila privada num computador remoto. No entanto, ao usar a tarefa Script, é fácil enviar uma mensagem para uma fila privada remota.
Note
Se quiser criar uma tarefa que possa reutilizar mais facilmente em vários pacotes, considere usar o código deste exemplo de tarefa Script como ponto de partida para uma tarefa personalizada. Para obter mais informações, consulte Desenvolvendo uma tarefa personalizada.
Description
O exemplo seguinte utiliza um gestor de ligações MSMQ existente, juntamente com objetos e métodos do namespace System.Messenger, para enviar o texto contido numa variável de pacote para uma fila de mensagens privadas remota. A chamada para o M:Microsoft. O método SqlServer.Dts.ManagedConnections.MSMQConn.AcquireConnection(System.Object) do gestor de conexões MSMQ devolve um objeto MessageQueue cujo método Send realiza esta tarefa.
Para configurar este exemplo de Tarefa de Script
Crie um gestor de ligações MSMQ com o nome predefinido. Defina o caminho de uma fila privada remota válida, no seguinte formato:
FORMATNAME:DIRECT=OS:<computername>\private$\<queuename>Crie uma variável de Serviços de Integração chamada MessageText do tipo String para passar o texto da mensagem para o script. Insira uma mensagem por defeito como valor da variável.
Adiciona uma tarefa de script à superfície de design e edita-a. No separador Script do Editor de Tarefas de Script, adicione a
MessageTextvariável à propriedade ReadOnlyVariables para tornar a variável disponível dentro do script.Clique em Editar Script para abrir o editor de scripts Microsoft Visual Studio Tools for Applications (VSTA).
Adicione uma referência no projeto de script ao espaço de nomes System.Messenger .
Substitua o conteúdo da janela do script pelo código na secção seguinte.
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;
}
}