Campusmanagement

Campusmanagement an der FAU

Inhalt

Log4j Runtime Reloading

Einleitung
In diesem Blogeintrag werde ich zeigen, wie man die in einer J2EE Umgebung die Log4j Konfiguration von Servlet Container und deplolyten Webapps zur Laufzeit — also ohne Neustart oder Redeploy — neu einlesen kann.

Log4j bietet zu diesem Zweck bereits zwei Methoden an, die jeweils in den Klassen PropertyConfigurator bzw. DOMConfigurator zu finden sind. Diese sind für unsere Zwecke allerdings nicht geeignet (von der Benutzung wird vielerorts abgeraten), da sie einen eigenen Thread starten, welcher die log4j.properties bzw. log4j.xml auf Änderungen hin überwacht.
Das starten von Threads ist in J2EE Umgebungen jedoch verboten, da diese in der Regel nicht ordnungsgemäß beendet werden und zu Speicherlöchern führen.

JBoss und Tomcat7 erkennen Änderungen an ihrer eigenen Log4j Konfiguration bereits von Haus aus. Die Live Konfiguration von Webapps wird aber nicht unterstützt.
Aus diesem Grund und für Tomcat Versionen kleiner 7.0 bleibt die diese Lösung deshalb totzdem sinnvoll.

Weiterlesen

Tomcat XCS – Cross context sessions

Einleitung
Das mein campus Projekt fasst mehrere eigenständige Webapplikationen unter einer Plattform zusammen. Oft werden die einzelnen Anwendungen sogar von unterschiedlichen Personen eigenständig entwickelt oder kommen von externen Entwicklern. Daher ist es wichtig, die Verschränkung der Anwendungen so gering wie möglich zu halten und so den Grad der nötigen Koordination unter den Entwicklern zu minimieren.
Das fördert die schnelle Entwicklung und erleichtert später die Wartbarkeit des Gesamtsystems.

Weiterlesen