Biztalk Server, ¿Cómo hacer debug y ver los mensajes?

BizTalk Server es una excelente herramienta para construir procesos de negocio que requieren de integración de sistemas.

Desde que se tienen IDE’s de desarrollo potentes, los desarrolladores están acostumbrados cada vez más a hacer debug de sus aplicaciones e ir viendo el estado de los objetos en memoria mientras se ejecuta la aplicación. Un problema en el desarrollo de orquestaciones es poder hacer debug de lo que estamos desarrollando. Por eso la pregunta, ¿Cómo hacer debug y ver los mensajes?

Respuesta

BizTalk tiene una herramienta llamada Health and Activity Tracking (HAT) que permite hacer consultas de las actividades que el motor servidor BizTalk está ejecutando.

Con esta herramienta podemos hacer debug de las orquestaciones y ver el contenido de los mensajes de cada instancia de servicio que se están ejecutando.

Los pasos para hacer debug son los que se muestran en el siguiente diagrama.

El primer paso no es materia de este POST.

 

Paso 2: Poner la orquestación en modo debug.

Para esto debemos utilizar la herramienta HAT. Esta herramienta trae consultas pre definidas con la cual podemos ubicar la orquestación que queremos revisar. Usando la consulta Most Recent 100 Service instance podemos ubicar la orquetsación.

Figura 1.

Una vez ubicada la orquestación que buscamos, debemos instanciar el Orchestration debugger utilizando el botón derecho sobre la orquestación, como lo muestra la figura 2.

Figura 2.

Por último debemos poner el o los puntos de ruptura en la orquestación para así poder ver su comportamiento en tiempo de ejecución. Esto se hace con el botón derecho sobre la acción, como muestra la figura 3. Luego de esto hay que cerrar el Orchestration Debugger.

Figura 3. 

Paso 3: Ejecutar la orquestación

Debemos iniciar el proceso de negocio que queremos debugear, esto se hace mandando el mensaje a BizTalk que inicia el proceso.

 

Paso 4: Encontrar la instancia de la orquestación

Para encontrar la instancia de la orquestación usamos el HAT con una consulta que muestre las orquestaciones que tienen el estado Strated. Cuando pusimos en el paso 2 el punto de ruptura, el motor detiene todas las instancias de esa orquestación en ese punto de ruptura por lo que quedan en estado Started.

Con la siguiente consulta podemos encontrar las instancias.

 

SELECT top 100

[Service/Name], [Service/Type],[ServiceInstance/State],

dateadd(minute, @UtcOffsetMin, [ServiceInstance/StartTime]) as [StartTime],

dateadd(minute, @UtcOffsetMin, [ServiceInstance/EndTime]) as [EndTime],

[ServiceInstance/Duration],[ServiceInstance/ExitCode],[ServiceInstance/ErrorInfo],

[ServiceInstance/Host], [Service/AssemblyName], [ServiceInstance/InstanceID],

[ServiceInstance/ActivityID], [Service/ServiceGUID],[Service/ServiceClassGUID]

FROM dbo.dtav_ServiceFacts sf WITH (READPAST)

where

[Service/Type]=’Orchestration’ and [ServiceInstance/State]=’Started’

ORDER BY sf.[ServiceInstance/StartTime] desc

Código 1: Consulta SQL

El resultado de esta consulta son las instancias que están Started en el servidor.

 

Paso 5: Attach el proceso y ver el mensaje.

Para poder tomar la instancia y ver el estado de los mensajes debemos ejecutar la consulta y con el botón derecho sobre la orquestación iniciar el Orchestration Debugger. La figura 4 muestra el resultado de la consulta.

Figura 4.

Ahora en el Orchestration Debugger, debemos hacer Attach del proceso para poder cargar la información de la instancia en el Debugger. La figura 5 muestra cómo hacerlo.

Figura 5.

Ahora tenemos toda la información de la instancia a la vista y podemos por ejemplo ver el valor de un mensaje. Este valor podemos verlo en el cuadro de propiedades de las variables o con el botón derecho sobre el mensaje grabarlo en disco.

Figura 6.

 

Paso 6: Sacar del modo Debug la orquestación

Es muy importante luego de realizar el debug, sacar los puntos de ruptura de la orquestación, sino está seguirá deteniendo todas las instancias de la misma que se ejecuten.

Para esto, en el mismo Orchestration Debugger se deben borrar los puntos de ruptura y luego cerrarlo. Eso es todo!!!

Salu2

Deja un comentario