Memory Probleme in Java – Fehleranalyse Chart

memory-analyse-methodic

Der Fehleranalyse Chart, den wir im Rahmen der Blog Post Reihe zum Thema Memory Leaks erstellt haben, zeigt typische Symptome und mögliche Ursachen im Umfeld von Speicherproblemen in der “Hotspot” Java VM an und kann zur schnelleren Fehlereingrenzung bei Speicherproblemen verwendet werden.

Die obere Hälfte zeigt typische Symptome. Zur Fehlereingrenzung sind die Symptome systematisch mit den betroffenen Speicherbereichen und möglichen Fehlerquellen und Ursachen in der unteren Hälfte verknüpft. Desweiteren sind mögliche Tools, welche zur weiteren Eingrenzung Verwendung finden können, aufgelistet (grüne Elemente).

Praktisch zur schnellen Fehleranalyse. Es sind sicherlich nicht alle typischen Probleme abgedeckt … ich freue mich auf Kommentare zu diesem Blog-Post über weitere Probleme und deren Fehlereingrenzung in der Praxis. Diese werden von mir dann natürlich gerne auch in den Chart aufgenommen. So “Leave a Reply”

Posted in Java Basics, Java Runtimes - VM, Appserver & Cloud | Tagged , , , , | Leave a comment

Schichtenarchitektur überwachen mit Spring und JUnit

Die Schichtenarchitektur einer Anwendung kann über die Projektstruktur in der IDE überwacht werden. Dies hat allerdings den Nachteil, dass unter Umständen eine Vielzahl von IDE-Projekten verwaltet werden müssen. Da dies nicht immer gewünscht ist, möchte ich eine Alternative zu diesem Vorgehen vorstellen.
Continue reading

Posted in Build, config and deploy, Java and Quality, Spring Universe | Tagged , , , , , | Leave a comment

Balsamiq Mockups 3.1

Just a few weeks after the big 3.0 release, Balsamiq published the next update: Balsamiq Mockups 3.1

This version includes a new feature called Alternates, providing a kind of branching mechanism for a single mockup. This can be useful to visualize slightly varying versions, improvement ideas or feedback without changing the original mockup. See the Working with Alternates documentation for details.

In addition, all the features that came with v3 can now be used in the Balsamiq’s Google Drive plugin.

The new release also contains built-in background music (optional), as well as several improvements and bug fixes.

Posted in Agile Methods and development | Tagged , | Leave a comment

Schichtenarchitektur überwachen mit Eclipse

Schichtenarchitekturen haben wir als Entwickler schon längst verinnerlicht. So ist die klassische Aufteilung in z.B. DAO-Schichten, Service-Schichten und Controller-Schichten mittlerweile akzeptiert und wird wie selbstverständlich in der Entwicklung eingesetzt. Die Vorteile aus architektonischer Sicht liegen auf der Hand, ebenso wie die Notwendigkeit in komponentenbasierten Architekturen ausschließlich gegen Interfaces zu implementieren.

Aber wie überwache ich, dass diese Schichtentrennung auch unter Projekt- und Zeitdruck und von weniger erfahrenen Entwicklern eingehalten wird? Der Zugriff von höheren Schichten auf niedrigere Schichten sollte verhindert werden, ebenso die Implementierung direkt gegen Komponentenimplementierungen.
Continue reading

Posted in Build, config and deploy, Java and Quality, Java EE, Java modularization | Tagged , , , , , | 1 Comment

Log4j 2 configuration depending on environment

In a recent project, we used Log4j 2 as a backend for slf4j. Logging is configured differently for the local application start than for production. To do this, we used to have one configuration per environment and a piece of code in a servlet listener doing the configuration for Log4j 1.2:

URL loggerFile = this.getClass().getClassLoader()
   .getResource("log4j-dev.xml");
DOMConfigurator.configure(loggerFile);

Log4j 2 has a reconfiguration feature that monitors a file and reloads the configuration if the file changes. Continue reading

Posted in Did you know? | Tagged , , , | Leave a comment

Grails in trockenen Tüchern?

Gerade noch haben wir spekuliert, wie es nach dem Release der Version 3.0 mit dem Projekt weitergeht. Und kaum zwei Wochen später überrascht die Meldung der Firma OCI, dass sie mit Graeme Rocher und Jeff Brown zwei der Hauptentwickler angestellt haben, so dass sie Vollzeit am Projekt weiterentwickeln können.

OCI ist eine Beratungsfirma aus St. Louis, USA. Der ein oder andere kennt vielleicht schon den monatlich erscheinenden Software Engineering Tech Trend. OCI engagiert sich nach eigener Aussage schon seit vielen Jahren in der Open Source Community und will dies mit der Unterstützung des Grails-Projekts verstärken. Sie wollen die Grails Technologie vorantreiben, um für ihre Kundenprojekte Lösungen für Big Data, Analytik und (Industrial) Internet of Things (IIOT) anbieten zu können.

Nun sind wir sehr gespannt, ob das gut für Grails sein wird und ob das Projekt vor allem unabhängig bleibt. Die Roadmap für dieses Jahr soll erst ab Juni 2015 veröffentlicht werden. Nach den ereignisreichen letzten Monaten sei dem Team um Graeme Rocher aber auch zunächst etwas Ruhe gegönnt.

Posted in Groovy and Grails | Tagged , , | Leave a comment

Grails Version 3.0 erschienen – Wie geht es weiter mit Grails

Mit 3.0 ist gerade die letzte Version unter der Ägide von Pivotal erschienen. Das Projekt wurde dabei mal wieder stark umgekrempelt und baut nun auf Gradle als Build-System und Spring Boot auf. Beides vereinfacht die Arbeit enorm und ermöglicht auch den Einsatz einer Standard-Java-IDE ohne jegliche Grails-spezifische Unterstützung. Das Bauen, Testen und Starten der Grails-Anwendung kann jetzt einfach über Gradle erfolgen und dank Spring Boot ist es nun möglich, die Anwendung über eine main-Methode zu starten und zu debuggen. Das ermöglicht es Eclipse-Nutzern, weiterhin mit Grails zu arbeiten, obwohl Pivotal die Arbeiten an den Groovy/Grails Plugins und der Groovy/Grails Tool Suite ebenfalls eingestellt hat und unklar ist, wie es dort weitergehen wird.

Durch die Aktualisierung auf Groovy 2.4 und Spring 4.1 kamen viele Neuerungen und Erweiterungen hinzu. Continue reading

Posted in Groovy and Grails | Tagged , , | 1 Comment