Author Archives: Fabian Lange

Einfache Performanceanalyse mit AppDynamics Lite

AppDynamics ist der aufgehende Stern am Application Performance Management Himmel.

Mirko beschreibt sehr schön in seinem Eintrag “Java Troubleshooting in Produktion: Vorstellung von AppDynamics Lite” warum AppDynamics die richtigen Antworten auf fast alle Fragen in modernen verteilten Architekturen gibt.

Dabei ist ein wesentliches Versprechen von AppDynamics die Einfachheit. Einfache Installation, einfacher Betrieb und schnelle Ergebnisse. Das klingt ungewöhnlich, und fast schon unglaubwürdig. Dass dies aber tatsächlich so ist zeigen folgende ungekürzte Screencasts.
(weiterlesen…)

Fabian Lange

 

Richfaces Session Speicherverbrauch – Analyse eines Memory-Leaks

Für die Entwicklung von JSF basierten Webseiten ist das Richfaces Framework ein gern genommenes Werkzeug. Es ist ein solides Framework mit umfassender Funktionalität, guter Dokumentation und einer Vielzahl von Komponenten. Mitgeliefert wird auch ein Ajax Framework namens Ajax4JSF (auch a4j genannt). Deployt man nun eine solche Anwendung in das weite Internet in Produktion, so stellen viele Leute fest, daß der Speicherverbrauch stark ansteigt und in nicht mehr reagierenden Systemen oder OutOfMemoryError Abstürzen resultiert. Die Ursache hierfür ist ein Designproblem in JSF / A4J und kann leider nicht einfach behoben, jedoch aber umgangen werden. Beginnen wir aber zuerst mit einer Analyse des Problems in einer ansonsten gut funktionierenden Anwendung.
(weiterlesen…)

Fabian Lange

 

Sprint Reflection mal anders

Es gibt viele Wege eine Reflection über einen vergangenen Sprint zu machen, und ab und zu probieren wir auch neue Ideen aus.
So wurden wir in unserer letzten Reflection in die Rolle eines Künstlers versetzt und haben unsere Eindrücke des vergangenen Sprints in ein Bild gefasst.
Was auf den ersten Blick merkwürdig erschien funktionierte aber überraschend gut. Das Bild stellt kompakt die wichtigsten Eindrücke zusammen und provoziert andere Emotionen also eine reine Liste über die zu verbessernden Dinge. Mal sehen ob wir dieses Mittel irgendwann wieder einsetzen.
Als Beispiel möchte ich mein Bild zeigen und beschreiben. Die Bilder der Kollegen waren zwar auch interessant, jedoch möchte ich sie nicht ungefragt veröffentlichen. :-)
(weiterlesen…)

Fabian Lange

 

System.gc() Aufrufe können schwere Folgen haben

Es passiert jedem Entwickler schon mal, daß man Hinweise aus der JavaDoc nicht besonders Ernst nimmt, oder gar überliest. Insbesondere wenn die angesprochenen Probleme lokal nicht (oder scheinbar nicht) auftreten.

Zum Beispiel aus dem java.text.SimpleDateFormat:

 * Date formats are not synchronized.
 * It is recommended to create separate format instances for each thread.
 * If multiple threads access a format concurrently, it must be synchronized
 * externally.

Vielleicht ist die Warnung auch nicht deutlich genug, dadurch daß dort steht: “It is recommended”.
Deshalb sieht man leider häufig folgende Zuweisung welche zu Nebenläufigkeitsproblemen führen kann

private static final SimpleDataFormat DATE_FORMAT = new SimpleDateFormat("yyyy.MM.dd");

Schlimmer ist es hingegen bei System.gc().
(weiterlesen…)

Fabian Lange

 

Die Besten Ausreden warum der Build bricht

Wir bei codecentric haben hunderte von automatischen Builds die täglich laufen und.. manchmal auch fehlschlagen. Doch soll es hier nicht um faule Ausreden wie “ach das war doch nur ne kleine Änderung das sollte nicht schiefgehen” gehen, sondern um die Fälle in denen der Build bricht weil.. nunja.. man weiß es halt nicht so richtig.

Klar sagt man schnell gern: Oh das muss kosmische Strahlung sein. Ich werfe den Build nochmal an. Aber wir wissen alle daß das nicht stimmen kann. Um wirklich effizient ein CI System nutzen zu können im Folgenden eine Liste von Ursachen von solch spontanen Buildfehlschlägen und wie man sie beheben kann.
(weiterlesen…)

Fabian Lange

 

WordPress WPML Kommentar Filter Plugin

Dieser Beitrag ist etwas “off-topic”. Kürzlich ist unser Blog von qTransate auf WPML für das zweisprachige Bloggen migriert worden. Hauptgrund waren die erheblich besseren Updates und eine sauberere Trennung von den verschiedenen Sprachen.
Ein Feature hat uns dabei aber gefehlt: Unter beiden Postings in Englisch und Deutsch wollen wir alle Kommentare anzeigen, nicht nur die Kommentare in der jeweiligen Sprache. WPML erlaubt dies von sich aus leider nicht, jedoch konnten wir dies erstaunlich einfach selbst programmieren.
(weiterlesen…)

Fabian Lange

 

© 2010 codecentric