Fazer debug de orquestrações Biztalk pode ser uma tarefa morosa (tal como o deployment, mas isso é outra estória). Aqui ficam algumas dicas:
1) Usar o Health & Activity Tracking. É a recomendação #1. Apesar de ser uma ferramenta algo lenta, mostra praticamente tudo o que aconteceu no sistema. O problema é que por vezes nem sempre tudo fica registado. Já tive situações em que se geram excepções (que aparecem no HAT), mas todo o path de invocação das compensações respectivo não ficam registadas. Também pode ser usado para fazer colocar breakpoints nas Shapes.
2) Se se puder desenvolver localmente, fazer build&deploy, Attach ao processo Biztalk (BTSNTSvc) no VS.Net, colocar breakpoints no código de componentes .Net que tenhamos desenvolvido, e desencadear o processo normalmente. Cuidado quando se faz Start a outras orquestrações, ou ao desencadear mais de um fluxo de teste em cada momento, porque o VS.Net fica… bom, histérico será uma palavra apropriada? 🙂
E depois existem os métodos à antiga:
1) “À antiga”: escrever para um ficheiro. Quando preciso de recorrer a isto, uso a seguinte forma:
StreamWriter sw = File.AppendText(@”c:\filename.txt”);
sw.WriteLine(….); sw.Flush();
….
sw.Close();
(importante não esquecer os flush…)
2) Usar o DebugView da SysInternals, colocando chamadas a:
System.Diagnostics.Debug.WriteLine(…);
Isto é muito mais conveniente que a solução anterior, e pode ser facilmente usado dentro das Expression Shapes, mas pode nem sempre ser possível usar ferramentas “alheias” (ainda que gratuitas).
jota