Compartir a través de


Enviar a una cola de mensajes privada remota con la tarea Script

Message Queue Server (también llamado MSMQ) facilita a los desarrolladores de software la comunicación rápida y confiable con los programas de aplicación mediante el envío y la recepción de mensajes. Una cola de mensajes se puede encontrar en el equipo local o en un equipo remoto y puede ser pública o privada. En Integration Services, el administrador de conexión MSMQ y la tarea Cola de mensajes no admiten el envío a una cola privada en un equipo remoto. Sin embargo, si se utiliza la tarea Script, resulta sencillo enviar un mensaje a una cola privada remota.

[!NOTA]

Si desea crear una tarea que pueda reutilizar más fácilmente en varios paquetes, considere la posibilidad de utilizar el código de este ejemplo de tarea Script como punto inicial de una tarea personalizada. Para obtener más información, vea Desarrollar una tarea personalizada.

Descripción

En el ejemplo siguiente se utiliza un administrador de conexión MSMQ existente, junto con objetos y métodos del espacio de nombres System.Messaging, para enviar el texto contenido en una variable de paquete a una cola de mensajes privada remota. La llamada al método M:Microsoft.SqlServer.Dts.ManagedConnections.MSMQConn.AcquireConnection(System.Object) del administrador de conexión MSMQ devuelve un objeto MessageQueue cuyo método Send realiza esta tarea.

Para configurar este ejemplo de tarea Script

  1. Cree un administrador de conexión MSMQ con el nombre predeterminado. Establezca la ruta de acceso de una cola privada remota válida, con el formato siguiente:

    FORMATNAME:DIRECT=OS:<computername>\private$\<queuename>
    
  2. Cree una variable de Integration Services con el nombre MessageText de tipo String para pasar el texto del mensaje al script. Escriba un mensaje predeterminado como valor de la variable.

  3. Agregue una tarea Script a la superficie de diseño y modifíquela. En la ficha Script del Editor de la tarea Script, agregue la variable MessageText a la propiedad ReadOnlyVariables para que la variable esté disponible dentro del script.

  4. Haga clic en Editar script para abrir el editor de scripts de MicrosoftVisual Studio Tools para aplicaciones (VSTA).

  5. En el proyecto de script, agregue una referencia al espacio de nombres System.Messaging.

  6. Reemplace el contenido de la ventana de script con el código de la sección siguiente.

Código

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;

        }

}
Icono de Integration Services (pequeño) Manténgase al día con Integration Services

Para obtener las más recientes descargas, artículos, ejemplos y vídeos de Microsoft, así como soluciones seleccionadas de la comunidad, visite la página de Integration Services en MSDN o TechNet:

Para recibir notificaciones automáticas de estas actualizaciones, suscríbase a las fuentes RSS disponibles en la página.

Vea también

Conceptos