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).
1until 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:
1twiddle.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:
1function twiddleTheBoss { 2 echo `twiddle.sh get "jboss.system:type=Server" Started | \ 3 awk -F "=" '{ print $2 }'` 4} 5 6... 7 8local STARTED="starting" 9until [ $STARTED == "true" ]; do 10 sleep 20s 11 STARTED=$(twiddleTheBoss) 12done 13 14...
Einfach und stabil, so wie man es sich wünscht 🙂 .
Weitere Beiträge
von Nick Prosch
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Nick Prosch
Head of Feelgood Management
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.