Friday, November 06, 2009
Falls während der Ausführung einer BizTalk Anwendung Fehler auftreten, ist der Weg Fehler über die Ausgabe von Debug Informationen innerhalb einer Expression zu finden, zu zeitraubend: Es müssen Expression Shapes platziert werden und die Applikation neu erstellt und veröffentlicht werden. Und falls man Pech hat, passiert die Ausgabe an falscher Stelle.
Eine bessere Lösung ist die Verwendung von der BizTalk Administration Konsole und dem Tool HAT zur Anzeige von aktuellen Variablenbelegungen und Nachrichteninhalten. Zur Laufzeit können für eine Orchestration so Breakpoints gesetzt werden und aktuelle Werte betrachtet werden.
Vorgehen:
- Zuerst werden für die gewünschte Orchestration Breakpoints gesetzt. Dafür wird in der Administration Konsole Group Hub Configuration Overview über Tracked service instances mit der rechten Maustaste eine Orchestration im Orchestration Debugger geöffnet.
- Die Orchestration erscheint (fast) genau wie im Orchestration Designer des Visual Studios. Mit rechter Maustaste kann über einem action shape ein breakpoint gesetzt werden. An dieser Stelle stoppt später die Orchestration während der Ausführung und zu dem Zeitpunkt bearbeiteten Nachrichten und Variablenwerte können betrachtet werden.
- Wenn die Orchestration erneut ausgeführt wird, stoppt sie an der Stelle, an welcher die Breakpoints gesetzt sind. Unter Running service instances in der Administration Konsole, erscheint die Orchestration markiert als Active. Mit der rechten Maustaste kann die Orchestration im Orchestration Debugger angezeigt werden. Über Menüeintrag Debug, Attach erscheinen die Nachrichten und Variablenwerte, die zur Laufzeit beim Breakpoint in der Orchestration vorhanden sind. Über Debug, Continue können weitere gesetzte Breakpoints angesprungen werden. Mit Hilfe von Debug, Detach wird die Orchestration weiter, wie gewohnt, ausgeführt.
Wednesday, October 14, 2009
Für das Monitoring der BizTalk Anwendungen wird das Tool Business Activity Monitoring (BAM) mit BizTalk mitgeliefert. Folgendes sollte die BAM Lösung in meinem Fall können:
- Tracken von Transaktionen über mehrere Orchestrationen
- Speichern von Originaldokumenten im XML Format
- Einsehen der Einträge mit Hilfe des BAM Portal
Eine gute Übersicht zu BAM bietet das Buch "Professional BizTalk Server 2006" von Darren Jefford, Kevin B. Smith und Ewan Fairweather. (Amazon.de)
Ich entschied mich für die Methode die BAM API zu nutzen, um Daten für das Monitoring zu liefern. Im Gegensatz zur Nutzung des Tracking Profile Editors bietet es mehr flexibilität.
Grobes Vorgehen:
- Erstellen der Activity und Activity View mit Excel Add-On
- Exportieren der Activity als XML Datei
- Activity mit Hilfe von bm.exe veröffentlichen
- Für bm.exe existiert ein sehr gutes GUI-basiertes Tool: BAMGUI http://bamgui.codeplex.com
- Da die Daten größtenteils innerhalb der Orchestration gesammelt werden, eignet sich der OrchestrationEventStream sehr gut dafür
- Die benötigten Methoden wurden innerhalb von Hilfsklassen implementiert und aus der Orchestration heraus aufgerufen.
- Um Nachricht im Originalformat zu speichern, können Referenzen verwendet werden.
- Über OrchestrationEventStream.AddReference Methode kann ein XML Dokument abgespeichert werden
- Das Problem ist dabei, dass dieses Dokument nicht im BAM Portal angezeigt wird. Als Lösung kann eine DokumentURL für dieses Dokument mitgespeichert werden. Dazu muss der BAM WebService so konfiguriert werden, dass es HTTP GET Methode akzeptiert. (siehe dazu: http://geekswithblogs.net/gwiele/archive/2009/05/28/132469.aspx)
Monday, October 12, 2009
Dieser Blog wurde angelegt um Lösungen oder Lösungsansätze für Probleme zu zeigen, die während der Entwicklung von BizTalk Anwendung auftreten.