Überwachen des JBoss AS Start per JMX

Keine Kommentare

Wie mein Kollege Robert in seinem Blog Beitrag „Automatisierter Modulimport für OpenCms“ beschrieben hat haben wir für unsere Testumgebung einen automatisierten Deploymentprozess etabliert. Jedoch kam vor kurzem die Frage auf, ob es nicht einen geschickteren Weg gibt den Serverstart zu überwachen als das Server log per grep „started“ zu überwachen (hier kam es vor, dass die Meldung teils ignoriert wurde).

until tail -n 1 server.log | grep "Started"; do sleep 0.01; done

Hier wollten wir einen verlässlicheren Weg finden, die Diskussion über verschiedene Lösungsansätze habe ich nur am Rand mit bekommen, aber auch nach Feierabend wollte mir diese Frage nicht aus dem Kopf.

Da wir mit JBoss einen JEE Applikationsserver betreiben, lag die Annahme nahe über JMX den Server selber zu fragen, ob er denn bereits wieder zur Verfügung steht. Zuerst wollte ich frohen Mutes einen kleinen JMX Client schreiben, jedoch bin ich bei dem Thema über ein kleines Werkzeug gestolpert, welches JBoss bereits frei Haus mit liefert und mir eine nächtliche Coding Session erspart hat: Twiddle

Die Beschreibung von JBoss ist selbsterklärend:

„A JMX client to ‚twiddle‘ with a remote JBoss server.“

Genau was wir brauchten – jetzt musste nur noch das entsprechende MBean gefunden werden. Da „bist du schon da?“ eine der denkbar einfachsten abzufragenden Dinge ist, sind wir auch hier schnell zu einem Ausdruck gekommen, der das gewünschte Ergebnis liefert:

twiddle.sh get jboss.system:type=Server Started

Sobald dieser Ausdruck true liefert ist der Server „up and running“.

Robert hat dann auch ASAP unser Skript erweitert:

function twiddleTheBoss {
    echo `twiddle.sh get "jboss.system:type=Server" Started | \
        awk -F "=" '{ print $2 }'`
}
 
...
 
local STARTED="starting"
until [ $STARTED == "true" ]; do
    sleep 20s
    STARTED=$(twiddleTheBoss)
done
 
...

Einfach und stabil, so wie man es sich wünscht 🙂 .

Nick Prosch

Als Mitarbeiter der ersten Stunde steht Nick heute nicht mehr direkt im Dienst unserer Kunden, sondern ist als Feelgood Manager für die Mitarbeiter der codecentric da, vom Praktikanten bis zum Vorstand. Wie ein Scrum Master sieht er zu, dass ein angenehmes Arbeiten in entspannter Atmosphäre mit tollen Teams möglich ist.

Über 1.000 Abonnenten sind up to date!

Die neuesten Tipps, Tricks, Tools und Technologien. Jede Woche direkt in deine Inbox.

Kostenfrei anmelden und immer auf dem neuesten Stand bleiben!
(Keine Sorge, du kannst dich jederzeit abmelden.)

* Hiermit willige ich in die Erhebung und Verarbeitung der vorstehenden Daten für das Empfangen des monatlichen Newsletters der codecentric AG per E-Mail ein. Ihre Einwilligung können Sie per E-Mail an datenschutz@codecentric.de, in der Informations-E-Mail selbst per Link oder an die im Impressum genannten Kontaktdaten jederzeit widerrufen. Von der Datenschutzerklärung der codecentric AG habe ich Kenntnis genommen und bestätige dies mit Absendung des Formulars.

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.