Page 1 of 1

Apache muss beim Booten auf JBoss warten - wie?

Posted: 2003-06-07 15:46
by holtsch
Ich verwende JBoss/Jetty (application server) mit Apache, verbunden über mod_jk. Dabei tritt folgendes Problem auf: wenn Apache gestartet wird, bevor JBoss mit seinem Startup durch ist (was ca. 1 Minute dauert), dann funktioniert die Verbindung über mod_jk nicht - man darf Apache also erst starten, wenn JBoss läuft.

Wenn ich JBoss vor Apache in init.d/rc3.d eintrage bringt das gar nichts - vermutlich, weil das JBoss-Startskript natürlich nicht weiß, wann JBoss fertig ist und die Skripten offensichtlich sowieso parallel ausgeführt werden.

Als temporären workaround habe ich jetzt mal beim apache Startup Skript sleep 1m eingefügt. So funktioniert es - die Lösung erscheint mir aber nicht besonders sauber (z.B. apache restart => erstmal 1 Minute warten, obwohl JBoss ja sowieso schon läuft).

Gibt's da eine schlauere Lösung?

liebe Grüße,
david

Re: Apache muss beim Booten auf JBoss warten - wie?

Posted: 2003-06-08 13:57
by majortermi
Wie wäre es damit, das "init"-Skript so zu modifizieren, dass es überprüft, ob zum JBoss eine Verbindung aufgebaut werden kann, und erst dann weitermacht?

Re: Apache muss beim Booten auf JBoss warten - wie?

Posted: 2003-06-09 10:49
by holtsch
Wie wäre es damit, das "init"-Skript so zu modifizieren, dass es überprüft, ob zum JBoss eine Verbindung aufgebaut werden kann, und erst dann weitermacht?
Cool! Das wäre natürlich die sauberste Lösung! Kann man das in einem Shell Skript (bash) einfach lösen? Wenn ja, wie? (oder: wo steht wie's geht?)

Re: Apache muss beim Booten auf JBoss warten - wie?

Posted: 2003-06-09 13:25
by majortermi
holtsch wrote:
Wie wäre es damit, das "init"-Skript so zu modifizieren, dass es überprüft, ob zum JBoss eine Verbindung aufgebaut werden kann, und erst dann weitermacht?
Cool! Das wäre natürlich die sauberste Lösung! Kann man das in einem Shell Skript (bash) einfach lösen? Wenn ja, wie? (oder: wo steht wie's geht?)
Wie wäre es damit per netcat oder telnet zu versuchen eine Verbindung herzustellen, und dann den Rückgabewert auszuwerten?

Re: Apache muss beim Booten auf JBoss warten - wie?

Posted: 2003-06-09 19:24
by holtsch
Danke, mit netcat geht das wunderbar:

Skript waitforjboss

Code: Select all

#!/bin/bash
netcat -v -z 127.0.0.1 8009 &> /dev/null
while [  "$?" = "1"  ];
do
  echo "Waiting for AJP13-server for mod_jk to come up"
  sleep 5s
  netcat -v -z 127.0.0.1 8009 &> /dev/null
done
echo "AJP13 server is up and running, moving on..."
Damit geht's genau so, wie ich es will...