Software-Diagnose 20.11.2008, 15:08 Uhr

Fehler finden und lösen

Die hohe Komplexität geschäftskritischer Anwen­dungen macht die Suche nach Software-Fehlern schwierig. Tiefendiagnostische Werkzeuge helfen dabei.
Hohe Performance und ständige Verfügbarkeit sind heute für Enterprise Applikationen unverzichtbare Faktoren. Heterogene Java SE/EE- und .NET-Anwendungen sowie verteilte Applikationen machen es aber immer schwerer, Software-Fehler zu finden und die Ursachen von Performance-Engpässen aufzuspüren. Zum Verständnis der dynamischen Zusammenhänge eines Systems reichen klassische Ansätze wie Profiling oder Monitoring, die nur statistische Durchschnittswerte liefern, nicht aus. Immer mehr Unternehmen suchen daher nach Tools, die eine echte, tiefer gehende Diagnose ermöglichen.

Turbo für UBS und Mobiliar

Um drohende Performance-Engpässe bei ihren J2EE-Portalsystemen rechtzeitig zu erkennen, hat beispielsweise die Investmentbank UBS vorhandene Monitoring-Tools um das Diagnose-Tool dynaTrace Diagnostics ergänzt. Das gleiche Diagnose-Tool setzt auch die private Versicherungsgesellschaft Mobiliar ein. Damit wollen die IT-Verantwortlichen bei Mobiliar drohende Performance-Flaschenhälse angesichts wachsender Zugriffsraten auf ihre Internet-Applikationen frühzeitig identifizieren. Das Tool erledigt dabei zwei Dinge auf einmal: Performance-Überwachung im 24x7-Stunden-Betrieb und Fehlerdiagnostik bis auf die Quellcode-Zeile hinunter. Treten im Produktivbetrieb Pro-bleme auf, macht das Diagnosewerkzeug die fehlerhaft beziehungsweise suboptimal programmierte Sourcecode-Stellen ausfindig.
Software-Entwickler sind damit in der Lage, Business-Transaktionen über Server-, Applikations-, Netz- und Betriebssystemgrenzen hinweg zu verfolgen. So wird die Rekonstruktion einer Transaktion bis zur Methodenebene möglich. Anweisungen wie «handleRequest» oder «renderPage», die unter bestimmten Bedingungen behäbig reagieren, bleiben so nicht mehr verborgen. Hilfreiche Dienste leisten dabei mit Knowledge-Sensoren ausgestattete Diagnose-Agenten, die auf den zu beobachtenden Systemen installiert sein müssen.
Im Prinzip funktioniert das Ganze so: Die Knowledge-Sensoren messen Rohdaten wie Antwort- und CPU-Zeiten, Methodenargumente oder Exceptions und leiten sie an den Diagnostics Server weiter. Der Server sammelt und analysiert die Daten sämtlicher Agenten in einem Repository. Diagnostics Clients schliesslich visualisieren die Messdaten für den auswertenden System-Ingenieur.

Sharepoint-Abfrage in Millisekunden

Ein weiteres Beispiel ist das auf SharePoint-Applikationen spezialisierte Schweizer Unternehmen BPA Solutions. Der Lösungsanbieter aus Neuchãtel hat mit dynaTrace seine auf SharePoint aufbauende Customer-Relationship-Management-Lösung optimiert. Mit BPA CRM verwalten Kundenbetreuer ihre Aktivitäten wie E-Mails, Telefonate, Aufgaben, Meetings und Termine. Das als Website-Lösung angebotene CRM benutzt SharePoint für die Teamarbeit, das Aufgabenmanagement und Blogging-Aktivitäten.
Mit zunehmender Datenmenge ging die Performance von BPA CRM in die Knie. Die Diagnose-Software hat mehrere Problembereiche entdeckt, sowohl in SharePoint-Komponenten als auch in benutzerdefinierten WebParts, welche die Sharepoint-Standardfunktionalitäten ergänzen. Beispielsweise dauerte die Abfrage von Kontodaten 2,5 Sekunden. Nach dem Wechsel in einen anderen Abfragemodus war die Ausführung in nur wenigen Millisekunden erledigt.
Im Allgemeinen stellte sich der Zugriff auf SharePoint-Daten als Performance kritisch heraus. Ein Beispiel: Thin Clients sind nur dann «dünn», wenn sie bestimmten Regeln folgen. Denn eine SharePoint-Lösung bringt viele interaktive Web Features in Gestalt von Client-seitigen Java-Scripten mit sich. Die zusätzliche, an den Client zu übertragende Datenmenge bremst dabei die Performance aus. Der Browser muss riesige SharePoint-Seiten analysieren - einige mit mehr als 250 KByte reinem HTML - und viele Zeilen Skript-Code ausführen. Nach dem Redesign einiger besonders datenlastiger Seiten stieg die Ausführungsgeschwindigkeit spürbar an.

Swiss Health Platform schneller

Auch der IT-Hosting-Dienstleister Centris hat von den Fehler- und Performance-Analysen durch dynaTrace profitiert. Die Centris verwaltet die Daten von 1,7 Millionen Versicherten bei 18 Kranken- und Unfallversicherern. Centris-Systemingenieure arbeiten seit etwa zwei Jahren am Rollout der Swiss Health Platform, die mit der Migration von Iris zu Syrius ASE verbunden ist. Ein Migrationsprojekt dieser Grössenordnung geht nie ohne kleinere Zwischenfälle vonstatten. «Während wir vorher aufgrund von Symptomen nur vermuten konnten, wo es klemmt, zeigte uns DynaTrace punktgenau, wo wir nachjustieren mussten», sagt Vera Gawlick, Projektmanager IT-Systemtechnik bei Centris.
Da wäre zum Beispiel die Partnersuche, die jetzt nicht mehr drei, sondern nur noch 0,3 Sekunden benötigt. Das Diagnosetool machte ausserdem 30 ineffiziente Datenbank-Statements ausfindig, wodurch die Transaktionszeiten signifikant reduziert werden konnten. Zusätzlich hat die Diagnostik-Suite den Speicherbedarf der Java VM (Virtual Machine) stark reduziert. Analysen haben gezeigt, dass zu viele Sitzungen über Tage hinweg offen blieben, was bei einem Speicherbedarf von 40 bis 50 MByte pro Sitzung unnötig viel Speicherplatz blockiert. Tiefendiagnose hat den Out-of-Memory-Problemen ein Ende gemacht.
Zum Autor: Andreas Grabner ist Senior Performance Architect bei dynaTrace Software



Das könnte Sie auch interessieren