Auf Windows-Systemen werden Java-Anwendungen in einer Befehlszeile ausgeführt. Dies macht es erforderlich, dass ein Benutzerkonto während dieser Zeit auf dem System eingeloggt ist und dass eine Eingabeaufforderung geöffnet ist und auf dem Desktop läuft.
Es gibt ein paar Nachteile bezüglich dies, die von Sicherheit bis zur Systemleistung reichen, die das Risiko beinhalten, dass ein Nutzer die falsche Taste in der Befehlszeile drücken und damit die Java-Anwendung "abschiessen", vorzeitig beenden könnte.
- Was ist ein Dienst?
- Einfache HelloWorldServer-Java-Klasse
- Wrapping der HelloWorldServer-Klasse
- HelloWorldServer in einer Konsole ausführen
- Einen Absturz simulieren
- HelloWorldServer als einen Dienst ausführen
Was ist ein Dienst? |
Windows hat die Fähigkeit, Anwendungen im Hintergrund als einen Dienst auszuführen, um diese Probleme zu lösen. Dienste werden beim System-Start gestartet und erfordern nicht, dass ein User eingeloggt ist. Dies erhöht in grossem Maße die Sicherheit und gesamte Systemstabilität, weil es für einen User nicht möglich ist, diese zu beenden, zu starten oder an diesen herumzubasteln, solange sie nicht Administrator sind. Das Problem ist, dass Java selbst nicht als Dienst gestartet werden kann. Viele einfache Tools wie der Windows sc Befehl können genutzt werden, um Java als einen Dienst auszuführen, aber wenn der Nutzer etwas Einfaches tut, wie z.B. das Abmelden von der Maschine, bewirkt das, dass Java sich beendet. Der Java Service Wrapper macht es nicht nur möglich, sondern macht es auch einfach, jede Java-Anwendung als einen Windows-Dienst auszuführen. Es fügt auch fortgeschrittene Failover-, Fehlerwiederherstellung, und Analyse-Features hinzu, um sicherzustellen, dass Ihre Anwendung eine möglichst lange Betriebszeit hat. |
Einfache Java-Klasse HelloWorldServer |
||||||||||||||||||||||||
Für dieses Beispiel machen wir von der Nutzung der HelloWorldServer-Anwendung Gebrauch, die wir im Hintergrund laufen lassen und uns via telnet von einem Client-Rechner aus verbinden. Bitte sehen Sie in der kompletten Übersicht der Anwendung nach, um zu verstehen, wie wir die HelloWorldServer-Anwendung für dieses Beispiel erstellen können. Ausser für den Fall, dass Sie das tatsächliche Beispiel ausführen wollen, genügt es andererseits zu sagen, dass es durch Nutzen der folgenden Java-Befehlszeile ausgeführt werden kann.
|
Ausführen von HelloWorldServer in einer Konsole |
||||
Der Wrapper wurde nun eingerichtet. Lass uns mit dem Testen unserer Konfiguration in der Windows Eingabeaufforderung beginnen. Bitte öffnen Sie eine neue Eingabeaufforderung und gehen Sie in unser %EXAMPLE_HOME% -Verzeichnis mit dem Befehl cd command. Der Wrapper und Ihre Anwendung, die vom Wrapper gesteuert wird, kann nun wie folgt gestartet werden:
Beachten Sie, dass der Standort der Konfigurationsdatei relativ zum Standort der Wrapper-Programmdatei ist. Dies ist etwas ungewöhnlich, aber es erhöht wesentlich die Zuverlässigkeit des Wrappers, wenn dieser über verschiedene Methoden gestartet wird. Wenn der Wrapper startet, sollten Sie etwas wie folgt sehen:
Der Banner am Anfang der Logdatei ist, weil wir eine vorübergehende Testlizenz benutzen. Er weist Sie daraufhin, wo Sie eine langfristige Testlizenz erhalten oder wo Sie später eine Lizenz kaufen können.
Die Zeile, die mit "Command: " startet ist eine Debug-Nachricht. Sie zeigt die genaue Java-Befehlszeile, die der Wrapper ausführt, um
die JVM zu starten. Sie ist sehr nützlich, um Probleme zu lösen.
Sobald Ihre Anwendung funktioniert, kommentieren Sie bitte die
wrapper. Wenn Sie eine Lizenz gekauft haben, wird Ihnen etwas, wie folgt, angezeigt:
Sie können Ihre Anwendung jederzeit durch Drücken von STRG-C beenden. Der Wrapper speichert stets einen Eintrag darüber, warum eine Anwendung beendet wurde; so dass Sie etwas wie folgt in Ihrer Logdatei sehen werden.
|
Einen Absturz simulieren |
|
Jetzt können Sie an einem sehr einfachen Beispiel sehen, wie der Wrapper in der Lage ist, sich von ein paar Ausfällen zu erholen. Starten Sie bitte den Wrapper nochmals. Als Nächstes öffnen Sie den Windows Task Manager. Dies können Sie mit STRL-ALT-ENTF tun. Sehen Sie auf die Registerkarte Prozesse und machen Sie den java.exe-Prozess ausfindig. Wählen Sie ihn aus und drücken Sie auf Prozess beenden. Dies teilt Windows mit, den Java-Prozess sofort zu beenden, ohne diesem die Möglichkeit zu geben, sich normal zu beenden. Wenn der Java-Prozess verschwindet, können Sie etwas wie folgt im Wrapper-Log sehen. Beachten Sie, wie der Wrapper erkennt, dass die JVM nicht mehr existiert und innerhalb weniger Sekunden einen Ersatzprozess startet.
Die Logdatei zeichnet auf, wie viele Male die JVM neu gestartet wurde. Dies ist sehr nützlich für Systemadministratoren, damit diese einfach durch Betrachten der Dateiendung erkennen können, ob Probleme aufgetreten sind. |
Verweis: Starten Ihrer Anwendung mit dem Wrapper |
[Windows]
[Linux/Unix]
[Windows & Linux/Unix betreffend] |