Java als eine Sprache wurde mit dem Ziel entwickelt, es für Usercode unmöglich zu machen, einen Anwendungsabsturz zu verursachen. Jeder Fehler würde in einen Ausnahmefehler resultieren, dessen Ausgabe gleichzeitig abgefangen und dann auf geeignete Weise erledigt würde. Die Realität, wie jeder langjährige Java-Entwickler oder Systemadministrator weiß, ist, dass selbst die Java Virtuelle Maschine (JVM) abstürzen kann, und auch abstürzt. Dies ist weil die JVM als Programm selbst in nativen Code geschrieben ist, und wie jedes sehr große komplexe Programm, hat die JVM auch Bugs.
Wie jedes andere Programm, wenn Java abstürzt, beendet es sich und verschwindet mit Ihrer Anwendung. Dies kann desaströs sein, wenn die Anwendung für das Unternehmen kritisch ist. Die Anwendung kann beendet sein und der Ausfall nicht bemerkt werden bis der Kunde das nächste Mal Ihre Webseite besucht. Oder die Versandabteilung ruft an, weil sie seit ein paar Stunden keine Versandaufträge erhalten haben. Sobald festgestellt wurde, dass die Anwendung beendet ist, kann es womöglicherweise eine oder zwei Stunden länger dauern bis der Systemadministrator erscheint und einen Neuestart durchführt.
- Lösung
- Technische Übersicht
- Testen
- Troubleshooting
- Verzögerung beim Neustart
- Deaktivieren von Neustarts
- Antworten auf Ereignisse
- Email-Benachrichtigung
- Recovery des Dienstes
- Referenz zu den Eigenschaften
Lösung |
||
Die Lösung auf dieses Problem ist es, eine Anwendung zu haben, die das Überwachen übernimmt und mit einem guten Wissen darüber, wie Java funktioniert. Eine Überwachung Ihrer Java-Anwendung von 24 Stunden am Tag, 365 Tage im Jahr soll vertraut werden; inklusive der automatischen Problembehandlung. Der Java Service Wrapper enthält verschiedene Monitoring-Features; eines von ihnen ist die Fähigkeit, festzustellen, wann eine JVM abgestürzt ist. Es überwacht dauerhaft die JVM und ist imstande, umgehend nach einem Absturz der JVM dies auch zu erkennen. Sobald ein Absturz entdeckt wurde, führt der Wrapper automatisch einen Neustart der JVM durch, um das System wieder hochzufahren und mit einer minimalen Verzögerungszeit zum Laufen zu bringen. Schließlich können Sie eine Email-Benachrichtigung einstellen, die dem Systemadministrator gersandt wird, um sicherzustellen, dass alles wieder normal läuft. Die vollständige Absturzentdeckung, Wiederherstellung und der Benachrichtigungsprozess werden alle durch den Java Service Wrapper automatisch behandelt, ohne dass es den Eingriff einer Bedienungsperson bedarf. Sobald ein Absturz erkannt wurde, wird der Wrapper etwas wie folgt aufzeichnen: Die log-Datei:
Während die oben genannte Nachricht etwas kryptisch erscheinen mag, ist es der Versuch der JVM, Sie mit Informationen über den Absturz zu versorgen. Weil diese Ausgabe als Speicherabbild auf einer sehr niedrigen Ebene der Konsole ausgegeben wird, ist es für alle auf Java basierenden Logging-Tools unmöglich, diese Information aufzuzeichnen. Bitte beachten Sie, dass der Wrapper in der Lage ist, 100% der Konsolenoutputs der JVM zu erfassen und sicherzustellen, dass alles in der Log-Datei erhalten ist. Ohne den Wrapper würde nicht nur Ihre Anwendung nicht mehr betriebsbereit sein, aber auch die Erklärung, was geschehen ist, würde verloren gehen. Idealerweise sollte jeder Absturz so bald wie möglich behoben werden, um zukünftige Abstürze zu vermeiden. Jedoch kann es, da Abstürze häufig durch unklare Wechselwirkungen zwischen perfekt gültigen Java-Code and Bugs in der JVM selbst zustande kommen, Wochen oder Monate für Entwickler dauern, um das Problem zu identifizieren und einen Workaround dafür zu finden. Der Wrapper hilft Ihnen, kritische Probleme inklusive der Folgenden zu entdecken: |
Technische Übersicht |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Absturzerkennung ist im Wrapper stetig eingeschaltet, da das Überprüfen von Abstürzen keine zusätzliche Last auf die JVM oder das System darstellt. Da Systemabstürze entweder erfolgen oder ausbleiben, gibt es keine Möglichkeit, diese Erkennung auzuschalten. Es ist jedoch möglich zu steuern, was der Wrapper tut, sobald ein Absturz erfolgt ist. Sobald ein Absturz erkannt wurde, wartet der Wrapper zuerst einen Moment (Standardmäßig 5 Sekunden) um dem Systemspeicher und -ressourcen zu erlauben in den Normalzustand zurückzukehren, und dann nachdem konfigurierte Benachrichtigungen erfolgt sind, eine neue JVM-Instanz zu starten, um Ihre Anwendung wieder ohne Verzögerung zum Laufen zu bringen. Wie unten beschrieben, ist es möglich, diese Funktion des automatischen Neustarts, wenn notwendig, auszuschalten.
|
Verweis: Crashes |
Der Java Service Wrapper bietet einen kompletten Satz an Konfigurationseigenschaften an, die es Ihnen ermöglichen, dass der Wrapper genau Ihre Bedürfnisse abdeckt. Sehen Sie bitte in die Dokumentation bezüglich der einzelnen Eigenschaften, um alle Möglichkeiten über die obengenannten Beispiele hinaus zu sehen.
|