Cómo: Validar un mensaje mediante una rampa de ESB
Objetivo
En esta sección se muestra cómo configurar el componente de canalización de desensamblador de ESB para realizar la validación de mensajes para los mensajes XML enviados a una rampa de esb.
En este tema de procedimientos, completará los pasos siguientes:
Cree una rampa de ESB que use la canalización ItinerarySelectReceiveXml .
Configure el componente de canalización de desensamblador de ESB Dispatcher para validar el contenido del mensaje.
Configure el componente de canalización Selector de itinerarios para resolver el itinerario adecuado.
Pruebe la validación de mensajes mediante un mensaje válido y un mensaje no válido.
Requisitos previos
Los procedimientos de este tema de procedimientos requieren la finalización de los requisitos previos para las actividades de desarrollo.
Antes de empezar
Complete las siguientes tareas antes de realizar los pasos más adelante en este tema de procedimientos:
Cree un mensaje de prueba no válido.
Cree un modelo de lenguaje específico del dominio (DSL) de ESB.
Configure las propiedades del itinerario.
Defina la estructura del itinerario.
Exporte el modelo a la base de datos de itinerarios.
En los procedimientos siguientes se describe cómo realizar cada una de estas acciones.
Para crear un mensaje de prueba no válido
En el Explorador de Windows, vaya a C:\HowTos.
Cree una copia de NAOrderDoc.xml y cambie el nombre del Invalid.xml de copia.
En el Bloc de notas, abra Invalid.xml.
Cambie <ns0:requestType>10</ns0:requestType> a <ns0:requestType>TEN</ns0:requestType>.
Guarde Invalid.xml como UTF-8 y cierre el Bloc de notas.
Nota
Al cambiar el valor numérico de este elemento a texto, el mensaje ya no será válido según el esquema.
Para crear un modelo DSL de itinerario de ESB
En Visual Studio, abra C:\HowTos\Patterns\Patterns.sln.
En Explorador de soluciones, haga clic con el botón derecho en ItinerarioLibrario, seleccione Agregary, a continuación, haga clic en Nuevo itinerario.
En el cuadro de diálogo Agregar nuevo elemento , escriba Validación en el cuadro Nombre y, a continuación, haga clic en Agregar.
Para configurar las propiedades del itinerario
En Visual Studio, haga clic en la superficie de diseño de Validation.itinerary. En el ventana Propiedades validación, configure las siguientes propiedades:
En la lista desplegable Exportador de modelos, haga clic en Exportador de itinerarios de base de datos.
Haga clic en el botón de puntos suspensivos (...) junto a la propiedad Base de datos de itinerarios .
En el cuadro de diálogo Propiedades de conexión, elija el SQL Server que hospeda la base de datos del repositorio de itinerarios y, a continuación, especifique el nombre de la base de datos (el nombre predeterminado es EsbItineraryDb).
En la lista desplegable Estado del itinerario , haga clic en Implementado.
Nota
Este paso le permite exportar el itinerario a un repositorio central; los itinerarios se pueden seleccionar y adjuntar desde este repositorio cuando se recibe el mensaje. Más adelante configurará el componente de canalización Selector de itinerarios para usar un solucionador estático para seleccionar el itinerario adecuado de este repositorio.
Para definir la estructura del itinerario
En el Cuadro de herramientas, arrastre un elemento de modelo on-Ramp a la superficie de diseño. En el ventana Propiedades OnRamp1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba ReceiveNAOrder.
En la lista desplegable Extender , haga clic en On-Ramp ESB Extender.
En la lista desplegable Aplicación de BizTalk , haga clic en Microsoft.Practices.ESB.
En la lista desplegable Puerto de recepción, haga clic en OnRamp.Itinerary.
Desde el Cuadro de herramientas, arrastre un elemento de modelo Off-Ramp a la superficie de diseño y colóquelo a la derecha del elemento de modelo existente. En el ventana Propiedades OffRamp1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba SendNAOrder.
En la lista desplegable Extender , haga clic en Off-Ramp ESB Extender.
En la lista desplegable Aplicación de BizTalk , haga clic en GlobalBank.ESB.
En la lista desplegable Puerto de envío, haga clic en DynamicResolutionOneWay.
En el Cuadro de herramientas, arrastre un elemento de modelo de Servicio de itinerarios a la superficie de diseño y colóquelo entre el elemento del modelo ReceiveNAOrder y el elemento del modelo SendNAOrder . En el ventana Propiedades ItineraryService1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba SendPortFilter.
En la lista desplegable Extender del servicio de itinerarios , haga clic en Extender fuera de rampa.
En la lista desplegable Off-Ramp ,expanda SendNAOrdery, a continuación, haga clic en Send Handlers (Enviar controladores).
Haga clic con el botón derecho en la colección Resolver del elemento SendPortFilter y, a continuación, haga clic en Agregar nuevo solucionador. En el ventana Propiedades Resolver1, configure las siguientes propiedades:
Haga clic en la propiedad Name y escriba ConfigureOffRamp.
En la lista desplegable Implementación del solucionador , haga clic en Extensión de resolución estática.
En la lista desplegable Nombre de transporte , haga clic en ARCHIVO.
Haga clic en la propiedad Ubicación de transporte y escriba C:\HowTos\Out\Validated%MessageID%.xml.
En el cuadro de herramientas, haga clic en Conector. Arrastre una conexión desde el elemento del modelo ReceiveNAOrder al elemento de modelo SendPortFilter .
En el cuadro de herramientas, haga clic en Conector. Arrastre una conexión desde el elemento de modelo SendPortFilter al elemento de modelo SendNAOrder .
Para exportar el modelo a la base de datos de itinerarios
En Visual Studio, haga clic con el botón derecho en la superficie de diseño del itinerario de validación y, a continuación, haga clic en Exportar modelo.
Nota
El itinerario se ha exportado a la base de datos de itinerarios y ahora puede ser utilizado por el componente de canalización selector de itinerarios.
Guarde todos los artefactos del proyecto.
Pasos
Para crear y configurar una rampa de ESB
Haga clic en Iniciar en la barra de tareas, seleccione Todos los programas, BizTalk Server y, a continuación, haga clic en Administración de BizTalk Server.
En la consola de administración de BizTalk Server, expanda Grupo de BizTalk, aplicaciones y, después, Microsoft.Practices.ESB.
Haga clic con el botón derecho en Ubicaciones de recepción, seleccione Nuevoy, a continuación, haga clic en Ubicación de recepción unidireccional.
En el cuadro de diálogo Seleccionar un puerto de recepción , haga clic en OnRamp.Itinerary y, a continuación, haga clic en Aceptar.
En el cuadro de diálogo Propiedades de ubicación de recepción, escriba OnRamp.Itinerary.HowTo en el cuadro Nombre .
En la lista desplegable Tipo , haga clic en ARCHIVO y, a continuación, haga clic en Configurar.
En el cuadro de diálogo Propiedades de transporte de archivos , escriba C:\HowTos\DropFolder en el cuadro Carpeta de recepción y, a continuación, haga clic en Aceptar.
Para configurar la rampa de acceso para realizar la validación de mensajes
En el cuadro de diálogo Propiedades de ubicación de recepción, en la lista desplegable Canalización de recepción, haga clic en ItinerarySelectReceiveXml y, a continuación, haga clic en el botón de puntos suspensivos (...).
Use el cuadro de diálogo Configurar canalización para configurar las siguientes propiedades del componente de desensamblador XML :
Expanda la aplicación GlobalBank.Esb y haga clic en Esquemas. Haga clic con el botón derecho en GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc y, a continuación, haga clic en Propiedades. Copie las propiedades Nombre y Ensamblado y péguelas en un archivo de texto.
En el componente Desensamblado , haga clic en True en la lista desplegable ValidateDocument .
Haga clic en la propiedad DocumentSpecNames y escriba el nombre completo del esquema. El nombre completo comienza con el nombre y va seguido de una coma y la información del ensamblado extraída en el paso a. A continuación se muestra un ejemplo:
GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc, GlobalBank.ESB.DynamicResolution.Schemas, Version=2.0.0.0,Culture=neutral, PublicKeyToken=c2c8b2b87f54180a
Nota
Este es el nombre completo del esquema que se va a validar; se compone del nombre del esquema y de cuatro propiedades de ensamblado: nombre del ensamblado, versión, referencia cultural y token de clave pública. Se permiten varios valores; separe varios esquemas con un símbolo de canalización (|).
Para configurar el componente Canalización del selector de itinerarios
En el cuadro de diálogo Configurar canalización , configure las siguientes propiedades del componente Selector de itinerarios :
Haga clic en la propiedad ItineraryFactKey y, a continuación, escriba Resolver.Itinerary.
Haga clic en la propiedad ResolverConnectionString y, a continuación, escriba ITINERARY:\\name=Validation;.
Haga clic en Aceptar para cerrar el cuadro de diálogo Configurar canalización .
Haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades de ubicación de recepción .
En la consola de administración de BizTalk Server, haga clic con el botón derecho en la ubicación OnRamp.Itinerary.HowTo receive location (Cómo recibir) y, a continuación, haga clic en Habilitar.
Para probar la validación del mensaje y la selección de itinerarios
En el Explorador de Windows, vaya a C:\HowTos.
Copie (no mueva) NAOrderDoc.xml a la carpeta DropFolder.
Vaya a C:\HowTos\Out. Compruebe que Validated%MessageID%.xml se ha escrito en el directorio.
Nota
El mensaje válido completó su enrutamiento basado en itinerarios, según lo previsto.
Elimine Validated%MessageID%.xml de la carpeta Out.
En el Explorador de Windows, vaya a C:\HowTos.
Copie (no mueva) Invalid.xml a la carpeta DropFolder.
Vaya a C:\HowTos\Out. Compruebe que no se ha entregado ningún mensaje nuevo.
Nota
No se pudo validar el mensaje; por lo tanto, no se pudo completar el enrutamiento basado en itinerarios.
Haga clic en Iniciar en la barra de tareas, seleccione Herramientas administrativas y, a continuación, haga clic en Visor de eventos.
En Visor de eventos, expanda Registros de Windowsy, a continuación, haga clic en Aplicación.
Busque un evento reciente en el que se BizTalk Server origen y el identificador de evento es 5719.
Nota
El envío y el error del mensaje no válido provocaron una entrada de excepción en el registro de eventos de la aplicación.
En la consola de administración de BizTalk Server, haga clic con el botón derecho en la ubicación OnRamp.Itinerary.HowTo receive y, a continuación, haga clic en Deshabilitar.
Después de deshabilitar la ubicación de recepción onRamp.Itinerary.HowTo , haga clic con el botón derecho en ella y, a continuación, haga clic en Eliminar. En el cuadro de diálogo Confirmar ubicación de recepción de eliminación , haga clic en Sí.
Recursos adicionales
Para obtener más información, vea los siguientes temas relacionados: