Agregación (ejemplo de BizTalk Server)
La finalidad de este ejemplo consiste en crear una funcionalidad de agregación de mensaje con orquestaciones y canalizaciones. De forma más específica, crearemos una orquestación que:
Recibe un conjunto de mensajes correlacionados. Los mensajes se correlacionan según la información de URI del socio comercial de destino que se extrae del contenido del mensaje.
Agrega los mensajes recibidos en un lote de intercambio único mediante la ejecución de una canalización de envío de XML.
Produce un mensaje de intercambio de XML cada minuto o en cuanto tiene suficientes mensajes para agregar.
Ubicación del ejemplo
<Ruta de acceso> de ejemplos\Pipelines\Aggregator
En la tabla siguiente se enumeran los archivos que se usan en el ejemplo.
Archivos | Descripción |
---|---|
Aggregator.sln | Archivo de solución de Visual Studio para el ejemplo. |
AggretatorBinding.xml | Archivo de enlace para el ejemplo. |
Cleanup.bat | Se utiliza para anular la implementación de ensamblados y quitarlos de la caché de ensamblados global (GAC). Quita los puertos de envío y recepción. Quita los directorios virtuales de los Servicios de Microsoft Internet Information (IIS) según sea necesario. |
Setup.bat | Se utiliza para crear e iniciar este ejemplo. |
En la carpeta Aggregate: Aggregate.btproj |
Proyecto de BizTalk para la orquestación de agregación. |
En la carpeta Aggregator: Aggregate.odx |
Orquestación que reúne los mensajes correlacionados y después ejecuta la canalización de envío para ensamblarlos en un intercambio único. |
En la carpeta Aggregate: SuspendMessage.odx |
Orquestación usada para suspender mensajes que no se pueden procesar en la orquestación de agregación. |
En la carpeta PipelinesAndSchemas: FFReceivePipeline.btp |
Canalización de recepción con desensamblador de archivos sin formato. |
En la carpeta PipelinesAndSchemas: Instance1.txt, Instance2.txt, Instance3.txt, Instance4.txt |
Instancias de documento para el ejemplo. Instance1.txt y Instance2.txt deben agregarse a un intercambio para el asociado http://www.contoso.com de destino, mientras que Instance3.txt y Instance4.txt deben agregarse a un intercambio para el asociado http://www.northwind.com de destino . |
En la carpeta PipelinesAndSchemas: Invoice.xsd, InvoiceEnvelope.xsd |
Esquema de documento y esquema de sobre para el intercambio de salida. |
En la carpeta PipelinesAndSchemas: PipelinesAndSchemas.btproj |
Proyecto de BizTalk para los esquemas y las canalizaciones. |
En la carpeta PipelinesAndSchemas: PropertySchema.xsd |
Esquema de propiedad del ejemplo. |
En la carpeta PipelinesAndSchemas: XMLAggregatingPipeline.btp |
Canalización de envío que se ejecuta desde la orquestación para ensamblar mensajes recogidos en un intercambio de XML. |
Crear e inicializar el ejemplo
Utilice el siguiente procedimiento para crear e inicializar el ejemplo de agregación.
Para crear e inicializar el ejemplo de agregación
En una ventana de comandos, desplácese a la siguiente carpeta:
<Ruta de acceso> de ejemplos\Pipelines\Aggregator
Ejecute el archivo Setup.bat que realiza las acciones siguientes:
Crea las carpetas de entrada (In) y de salida (Out) de este ejemplo en la carpeta:
<Ruta de acceso> de ejemplos\Pipelines\Aggregator
Compila los proyectos de Visual Studio para este ejemplo.
Crea una aplicación nueva llamada "Aggregator Sample" e implementa los ensamblados de ejemplo en ella.
Crea y enlaza la ubicación de recepción de BizTalk Server y los puertos de envío y recepción.
Da de alta e inicia la orquestación, habilita la ubicación de recepción e inicia el puerto de envío.
Si decide abrir y compilar los proyectos en este ejemplo sin ejecutar el archivo Setup.bat, primero debe crear un par de claves de nombre seguro mediante la utilidad De nombre seguro de .NET Framework (sn.exe). Use este par de claves para firmar los ensamblados resultantes.
Antes de tratar de ejecutar este ejemplo, confirme que BizTalk Server no ha informado de ningún error durante el proceso de generación e inicialización.
Para deshacer los cambios realizados por Setup.bat, ejecute Cleanup.bat. Debe ejecutar Cleanup.bat antes de ejecutar Setup.bat por segunda vez.
Ejecutar el ejemplo
Utilice el siguiente procedimiento para ejecutar el ejemplo de agregación.
Para ejecutar el ejemplo de agregación
Abra los archivos Instance1.txt e Instance2.txt que se encuentran en la carpeta PipelinesAndSchemas para inspeccionar su contenido.
Observe que en ambos archivos, el elemento DestinationPartnerURI contiene el valor
http://www.contoso.com
. Este valor se usará para correlacionar estos dos mensajes juntos de modo que se puedan agregar a un intercambio.Del mismo modo, Instance3.txt y Instance4.txt archivos tienen el elemento DestinationPatnerURI establecido
http://www.northwind.com
en .Estos dos mensajes juntos se agregarán a un intercambio diferente.
Pegue copias de los archivos de texto Instance1.txt, Instance2.txt, Instance3.txt e Instance4.txt en la carpeta In.
Las orquestaciones de agregación producen intercambios de salida en cuanto recogen 10 mensajes o cuando transcurre 1 minuto de tiempo de espera. Debido a eso, los archivos en la carpeta Out pueden aparecer con retraso.
Para evitar el tiempo de espera, puede pegar los cuatro archivos de entrada cuatro veces lo que desencadenaría que las orquestaciones de agregación produzcan los intercambios.
Observe los archivos XML creados en la carpeta Out. Debe haber dos archivos: uno por cada URI del asociado de destino.
Abra uno de los archivos para inspeccionar su contenido. El archivo debe contener un intercambio de XML que consista en un sobre y dos documentos XML dentro de él.
Nota
La implementación de ejemplo puede producir "mensajes entregados, no consumidos" o "Completado con mensajes descartados" con una carga elevado en un escenario de convoyes. Esto se produce cada vez que la ruta de un mensaje se dirige a un proceso empresarial que está en el proceso de finalización o cada vez que llegan mensajes inesperados a un proceso empresarial.