Compartir a través de


MQSCorrelationSetOrchestrationWithSolicitResponse (ejemplo de BizTalk Server)

El ejemplo MQSCorrelationSetOrchestrationWithSolicitResponse muestra cómo usar un identificador de correlación producido por MQSeries Server en lugar de BizTalk Server.

Descripción del ejemplo

La orquestación envía un mensaje con un valor vacío para la propiedad MQMD_MsgID en el encabezado del mensaje. MQSeries genera messageID y CorrelationID y devuelve un mensaje con un valor asignado a MQMD_MsgID y MQMD_CorrelId como parte de la respuesta en el puerto de envío de solicitud-respuesta del adaptador. La orquestación usa el identificador de correlación generado para inicializar el conjunto de correlación y sigue el conjunto de correlación en una ubicación de recepción posterior comprobando la propiedad MQMD_CorrelId del mensaje. El adaptador también asigna el identificador de correlación a BizTalk_CorrelationID, que también puede usar en una orquestación. Para obtener más información sobre el uso de identificadores de correlación con el adaptador, consulte Correlación de mensajes mediante solicitud-respuesta.

Importante

Las orquestaciones que utilizan esta técnica pueden experimentar problemas si el mensaje de MQSeries Server llega antes que el identificador de correlación. Asegúrese de diseñar las orquestaciones de modo que otorgue el tiempo suficiente a MQSeries Server para devolver el identificador de correlación. Este ejemplo no considera esta posible condición de anticipación.

Ubicación del ejemplo

<Ruta de acceso> de ejemplos\AdaptersUsage\MQSeriesAdapter\MQSCorrelationSetOrchestrationWithSolicitResponse

En la tabla siguiente se enumeran los archivos del ejemplo y se describe su propósito.

Archivo Descripción
MQSCorrelationSolicitResponse.btproj,

MQSCorrelationSolicitResponse.sln
Archivos de proyectos y soluciones para la aplicación.
MQSCorrelationSolicitResponse.odx El archivo de orquestación de BizTalk para la aplicación.
MQSCorrelationSolicitResponse.snk Archivo de clave de nombre seguro.
Setup.bat Crea e inicializa este ejemplo.

Uso del ejemplo

Para crear la aplicación, debe realizar los siguientes pasos:

  • Crear dos colas MQSeries.

  • Configurar una ubicación de recepción y un puerto de envío del servidor BizTalk Server.

  • Habilitar la ubicación de recepción.

  • Inicie el puerto de envío.

  • Crear las carpetas correspondientes.

  • Modificar la orquestación.

  • Implementar, enlazar e iniciar la orquestación.

    Si dispone de los permisos necesarios para la instalación de MQSeries Server para Windows, puede crear la cola MQSeries mediante los cuadros de diálogo del adaptador y puede omitir el procedimiento siguiente. Si no dispone de este acceso, puede crear la cola con IBM WebSphere MQ Explorer. Para crear las colas con WebSphere MQ Explorer, realice los siguientes pasos.

Crear las colas MQSeries con WebSphere MQ Explorer

Para crear las colas MQSeries con WebSphere MQ Explorer

  1. Haga clic en Inicio, seleccione Todos los programas, IBM WebSphere MQ y, a continuación, haga clic en WebSphere MQ Explorer.

  2. Haga doble clic en Administradores de colas y, a continuación, haga doble clic en el administrador de colas predeterminado. Normalmente, el administrador de colas predeterminado se denomina QM_<machine_name> donde machine_name es el nombre del equipo.

  3. Haga clic con el botón derecho en Colas, seleccione Nuevoy, a continuación, haga clic en Cola local.

  4. En el cuadro de diálogo Crear cola local , en Nombre de cola, escriba "REPLYTOQ" y, a continuación, haga clic en Aceptar.

  5. Haga clic con el botón derecho en Colas, haga clic en Nuevoy, a continuación, en Cola local.

  6. En el cuadro de diálogo Crear cola local , en Nombre de cola, escriba "SOLICITRESPONSEQ" y haga clic en Aceptar.

Crear la ubicación de recepción y la cola MQSeries

Este procedimiento crea el puerto de envío y la ubicación de recepción para enviar el mensaje y recibir el mensaje de correlación de MQSeries. La cola MQSeries también se creará al crear la ubicación de recepción si no se ha creado anteriormente.

Para crear la ubicación de recepción y la cola de MQSeries

  1. Abra la consola de administración de BizTalk Server.

  2. Expanda administración de BizTalk Server, grupo de BizTalk, aplicaciones y, a continuación, expanda la aplicación necesaria.

  3. Haga clic con el botón derecho en Puertos de recepción, seleccione Nuevoy, a continuación, haga clic en Puerto de recepción unidireccional.

  4. En el cuadro de diálogo Propiedades de puerto de recepción unidireccional , en el cuadro Nombre , escriba "MQReply" y haga clic en Aceptar.

  5. En el panel izquierdo, haga clic en la pestaña Ubicaciones de recepción y, a continuación, haga clic en Nuevo.

  6. En el cuadro de diálogo Propiedades de ubicación de recepción, en el cuadro Nombre , escriba "MQReply".

  7. En el cuadro Tipo de transporte , seleccione MQSeries.

  8. En el cuadro Controlador de recepción, seleccione BizTalkServerApplication.

  9. En el cuadro Canalización de recepción , seleccione Microsoft.BizTalk.DefaultPipelines.PassThruReceive.

  10. Haga clic en Configurar.

  11. En el cuadro de diálogo Propiedades de transporte de MQSeries , en el cuadro Intervalo de sondeo, escriba "10".

  12. En el cuadro Definición de cola , haga clic en el botón de puntos suspensivos (...) .

  13. En el cuadro de diálogo Definición de cola , en el cuadro Nombre del servidor , escriba el nombre del equipo.

  14. En el cuadro Administrador de colas , seleccione el administrador de colas predeterminado.

  15. En el cuadro Cola , escriba " REPLYTOQ" y, a continuación, haga clic en Exportar.

  16. En el cuadro de diálogo Exportar , haga clic en Crear cola y, a continuación, haga clic enAceptaro Listo hasta que haya salido de todos los cuadros de diálogo.

Crear el puerto de envío y la cola MQSeries

Para crear el puerto de envío y la cola MQSeries

  1. Haga clic con el botón derecho en Puertos de envío, seleccione Nuevoy, a continuación, haga clic en Puerto de envío unidireccional estático.

  2. En el cuadro de diálogo Propiedades del puerto de envío, en el cuadro Nombre , escriba "MQSolicitResponse".

  3. En el cuadro Tipo de transporte , seleccione MQSeries.

  4. En el cuadro Enviar canalización , seleccione Microsoft.BizTalk.DefaultPipelines.PassThruTransmit.

  5. En el cuadro Canalización de recepción , seleccione Microsoft.BizTalk.DefaultPipelines.PassThruReceive.

  6. Haga clic en Configurar.

  7. En el cuadro de diálogo Propiedades de transporte de MQSeries , en el cuadro Definición de cola , haga clic en el botón de puntos suspensivos (...) .

  8. En el cuadro de diálogo Definición de cola , en el cuadro Nombre del servidor , escriba el nombre del equipo.

  9. En el cuadro Administrador de colas , seleccione el administrador de colas predeterminado.

  10. En el cuadro Cola , escriba " SOLICITRESPONSEQ" y, a continuación, haga clic en Exportar.

  11. En el cuadro de diálogo Exportar, haga clic en Crear cola y, a continuación, haga clic en Aceptar o Listo hasta que haya salido de todos los cuadros de diálogo.

Habilitar la ubicación de recepción e iniciar el puerto de envío

Este procedimiento crea las carpetas requeridas para recibir el archivo en la orquestación y envía el mensaje correlacionado y el mensaje de respuesta a las carpetas de salida.

Para habilitar la ubicación de recepción e iniciar el puerto de envío

  1. En la consola de administración de BizTalk Server, haga clic en Puertos de recepción.

  2. En el panel de detalles, haga clic con el botón derecho en la ubicación de recepción mqIn y haga clic en Habilitar.

  3. En el panel de detalles, haga clic con el botón derecho en el puerto de envío MQOut y haga clic en Iniciar.

Crear las carpetas usadas por la aplicación

Para crear las carpetas usadas por la aplicación

  1. Si no existe ninguna, cree una carpeta denominada "temp" en la unidad C:\.

  2. Cree carpetas en el directorio C:\temp denominado "Pickup2", "Dropit2" y "MoveIt".

Modificar la orquestación usada por la aplicación

Este procedimiento modifica la orquestación usada por la aplicación.

Para modificar la orquestación usada por la aplicación:

  1. En Microsoft Visual Studio, haga doble clic en el archivo de solución MQSCorrelationSolicitResponse.sln para abrir la solución.

  2. En el panel Explorador de soluciones, haga doble clic en la orquestación MQSCorrelationSolicitResponse.odx para ver la orquestación.

  3. Haga doble clic en la forma de asignación de mensajes MessageAssignment_1 para iniciar el Editor de expresiones de BizTalk.

  4. Especifique el nombre de administrador de cola MQSeries correspondiente para la siguiente expresión:

    MQSeriesRequestSendMessage(MQSeries.MQMD_ReplyToQMgr) = "QM_<machine_name>";

  5. Si desea que el mensaje de respuesta enviado desde BizTalk contenga todo el contenido del mensaje original y no solo los 100 primeros bytes, modifique la línea siguiente en el Editor de expresiones de BizTalk.

    • Línea original:

      MQSeriesRequestSendMessage(MQSeries.MQMD_Report) = 768;

    • Debe cambiarse así:

      MQSeriesRequestSendMessage(MQSeries.MQMD_Report) = 1792;

  6. En el Editor de expresiones de BizTalk, haga clic en Aceptar para guardar la expresión modificada.

  7. En Visual Studio, seleccione Archivo y, después, Guardar todo.

Generar e implementar el ejemplo

Este procedimiento genera e implementa la solución que contiene la orquestación usada en esta aplicación.

Para generar e implementar el ejemplo

  1. En una ventana de comandos, desplácese a la siguiente carpeta:

    <Samples Path>\AdaptersUsage\MQSeriesAdapter\MQSCorrelationSetOrchestrationWithSolicitResponse

  2. Ejecute el archivo Setup.bat que realiza las acciones siguientes:

    1. Crea una clave de nombre seguro para el proyecto.

    2. Compila e implementa el proyecto de orquestación.

    3. Crea un puerto de envío y un puerto de recepción con el adaptador de archivo.

    Nota

    Puesto que esta orquestación especifica los enlaces para el envío y la recepción de archivos con el adaptador de archivos, al implementar la orquestación, se crearán los puertos de envío, puertos de recepción y la ubicación de recepción necesarios para la recepción de un archivo en la orquestación y la salida del mensaje de correlación y el mensaje de respuesta.

Enlazar e iniciar la orquestación

Este procedimiento enlaza la orquestación al host y a los puertos de envío y ubicaciones de recepción correspondientes.

Procedimiento para enlazar e iniciar la orquestación

  1. En la consola de administración de BizTalk Server, expanda la carpeta Orquestaciones.

  2. En el panel de detalles, haga clic con el botón derecho en la orquestación MQSCorrelationSolicitResponse y haga clic en Enlazar.

  3. Enlace los puertos de orquestación con los siguientes puertos de envío y ubicaciones de recepción:

    Puerto de orquestación Puerto de mensajería/ubicación de recepción
    FileReceivePort MQSCorrelationSolicitResponse.Orchestration.FileReceivePort
    MQSeriesResponseReceivePort MQReply
    SolicitResponsePort MQSolicitResponse
    TempPort MQSCorrelationSolicitResponse.Orchestration.TempPort
    FileSendPort MQSCorrelationSolicitResponse.Orchestration.FileSendPort
  4. Haga clic en Host.

  5. En el cuadro Host , seleccione BizTalkServerApplication y haga clic en Aceptar.

  6. En Puertos de envío, haga clic con el botón derecho en MQSCorrelationSolicitResponse.Orchestration.TempPort y, a continuación, seleccione Iniciar.

  7. En Puertos de envío, haga clic con el botón derecho en MQSCorrelationSolicitResponse.Orchestration.FileSendPort y seleccione Iniciar.

  8. En Ubicaciones de recepción, haga clic con el botón derecho en MQSCorrelationSolicitResponse.Orchestration.FileReceivePort y, a continuación, seleccione Habilitar.

  9. Haga clic con el botón derecho en la orquestación y haga clic en Iniciar.

    Nota

    Además, iniciar la orquestación da de alta la orquestación de forma automática.

Probar la aplicación

Este procedimiento comprueba la aplicación.

Para probar la aplicación

  1. Coloque un archivo en la carpeta C:\Temp\Pickup2 .

  2. Examine los archivos de la carpeta C:\Temp\Dropit2 y la carpeta C:\Temp\Moveit.

    • La carpeta C:\Temp\Dropit2 debe contener una copia del mensaje que BizTalk Server recoge originalmente.

    • La carpeta C:\Temp\Moveitdebe contener un documento de respuesta con el identificador del mensaje (MQMD_MsgId) y el identificador de correlación (MQMD_CorrelId).

    Nota

    Si deshabilita la ubicación de recepción de MQReply , puede examinar el mensaje en WebSphere MQ Explorer y ver que se establecen los identificadores de correlación y mensaje. Para ello, inicie WebSphere MQ Explorer y examine el mensaje colocado en la cola REPLYTOQ . Los identificadores de mensaje y correlación se muestran en la pestaña Identificadores del cuadro de diálogo Propiedades de mensajes.

Consulte también

Correlación de mensajes mediante procedimientos de solicitud-respuesta
Ejemplos del adaptador de MQSeries