Creación de controladores de excepción personalizados
Para que una aplicación detecte y reaccione ante excepciones, los desarrolladores deben proporcionar un controlador de excepciones. Este controlador de excepciones puede suscribirse a un único tipo de mensaje de excepción o a los mensajes de excepción generados a partir de algunas o todas las partes de un sistema o una aplicación. Por ejemplo, puede requerir solo un controlador único para todos los mensajes de un sistema determinado (como cualquier excepción que se produzca en el sistema de nóminas), o puede requerir controladores de destino para errores específicos (por ejemplo, detectar si se produce un error en el proceso de impresión de comprobación).
Para suscribirse a un tipo específico de excepción, use una orquestación que tenga un filtro en la forma de activación De recepción, como se muestra en el ejemplo siguiente.
Microsoft.Practices.ESB.ExceptionHandling.Schemas.Property.FaultCode == "1000";
También puede tener una condición de filtro en un puerto de envío que envíe un mensaje al sistema de archivos o por correo electrónico si el mensaje cumple una condición de filtro específica.
Proyectos de control de excepciones de ejemplo
Microsoft BizTalk ESB Toolkit incluye varias aplicaciones de BizTalk de ejemplo que muestran el control de excepciones. Estos ejemplos se pueden encontrar en la carpeta \Source\Samples\Exception Handling.
También hay cuatro proyectos de BizTalk, ubicados en la solución GlobalBank.ESB.Samples.ExceptionHandling, que muestran cómo usar el mecanismo de enrutamiento de excepciones de orquestación con errores de ESB. Estos proyectos están preconfigurados para implementarse en la aplicación GlobalBank.ESB bizTalk. Los proyectos son los siguientes:
ESB. ExceptionHandling.Schemas. Este proyecto contiene los esquemas usados para las orquestaciones de ejemplo.
ESB. ExceptionHandling.Pipelines. Este proyecto contiene la canalización de envío configurada con el procesador de excepciones, que se usa en un puerto de envío que se suscribe a todas las excepciones. Esto incluye excepciones generadas por BizTalk y excepciones generadas por el Marco de administración de excepciones.
ESB. ExceptionHandling.Processes. Este proyecto contiene la orquestación EAIProcess.odx, que simula una excepción intentando dividir por cero y llama a los métodos CreateFaultMessage y AddMessage para generar un mensaje de error adecuado, como se muestra en la figura 1.
de
Ilustración 1
Orquestación EAIProcess.odx en el proyecto de ejemplo Procesos
ESB. ExceptionHandling.Handlers. Este proyecto contiene la orquestación EAIGenericHandler.odx, que llama al método GetMessages y recorre en iteración messageCollection mediante el método MoveNext , como se muestra en la figura 2.
ejemplo
Ilustración 2
Orquestación EAIGenericHandler.odx en el proyecto de ejemplo Handlers
The ESB. El proyecto ExceptionHandling.Handlers también contiene la orquestación EAIProcessHandler.odx, que llama a los métodos GetMessage y GetException , como se muestra en la figura 3.
ejemplo de controladores de
Ilustración 3
Orquestación EAIProcessHandler.odx en el proyecto de ejemplo Handlers