index

wrapper.timer.<n>.<x>

Kompatibel :3.3.0
Editionen :Professional EditionStandard Edition (Not Supported)Community Edition (Not Supported)
Betriebssysteme :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

WARNING

Ändern Sie bitte nicht irgendwelche von diesen Parametern, wenn Sie diese Eigenschaften-Beschreibung nicht gelesen haben. Inkorrekte Einstellungen können dazu führen, dass der Wrapper nicht so wie erwartet funktioniert.

Die Timer-Eigenschaften ermöglichen es, Neustarts, Shutdowns oder Thread-Dumps der JVM zu spezifischen Zeiten oder Zeiträumen in a cron-job-Art zu planen. Dies kann in Fällen nützlich sein, in denen es der User-Anwendung an Speicher mangelt oder andere Anforderungen gegeben sind, die regelmäßige Neustarts erfordern.

Grundlegende Einstellungen:

Das folgende Beispiel wird jeden Tag um genau 4:00 morgens die JVM neu starten.

Beispiel:
wrapper.timer.1.action=RESTART
wrapper.timer.1.interval=hour=4

Jede Timer-Vereinbarung besteht aus zwei Eigenschaften:

<n> Komponente:

Die "<n>" Komponente des Eigenschaftennamen ist eine Integer-Zahl, die von "1" hochzählt. Standardmäßig kann es keine fehlenden Nummern geben. Die wrapper.ignore_sequence_gaps Eigenschaft kann optional gesetzt werden, um Lücken in der Sequenz zu erlauben.

wrapper.timer.<n>.action Eigenschaft

Kompatibel :3.3.0
Editionen :Professional EditionStandard Edition (Not Supported)Community Edition (Not Supported)
Betriebssysteme :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

Timer kann die folgenden Werte haben:

  • DEBUG :

    Jedes mal, wenn der Timer gestartet wird, wird eine Fehlersuche-Nachricht geloggt werden. Dies ist nur wirklich hilfreich, um zu verstehen, wie Timer funktionieren.

  • STATS (Seit Ver. 3.5.52, Standard und Professional Editionen) :
    ? Please check the English version for a more recent version of this text.

  • DUMP :

    Verlangt, dass die JVM jedes Mal einen Thread-Dump durchführt, wenn der Timer gestartet wird. Dies kann nützlich sein, um Speicher- oder Leistungsprobleme ausfindig zu machen, wenn Sie nicht sicher sind, wann genau diese auftreten. Stellen Sie sicher, dass Ihre Protokollierungseigenschaften eingerichtet wurden, um mit großen Logdateien umgehen zu können, wenn Sie das Zeitintervall auf eine schnelle Übertragung eingestellt haben. Wird ignoriert, wenn die JVM nicht läuft.

  • GC (Seit Ver. 3.5.7) :

    ruft einen vollständigen Speicherreinigungsvorgang in der JVM auf. Seien Sie sich bewusst, dass, wenn dies häufig getan wird, dies das Leistungsvermögen der JVM negativ beeinflussen kann, da eine vollständige Speicherbereinigung oft bewirkt, dass alle Threads für die Dauer der GC "eingefroren" werden. Wird ignoriert, wenn die JVM nicht läuft.

  • RESTART :

    Die Java-Anwendung wird jedes Mal, wenn der Timer gestartet wird, neu gestartet. Wird ignoriert, wenn die JVM nicht läuft.

  • SHUTDOWN :

    The Wrapper will be shutdown when the timer is fired. Der Wrapper wird, wenn der Timer gestartet wird, beendet werden. Dies kann offensichtlich nur einmal passieren, außer wenn der Wrapper von extern neu gestartet wird.

  • USER_<n> (Seit Ver. 3.5.0, Professional Edition) :

    Es kann ein benutzerdefiniertes Ereignis ausgelöst werden.

  • PAUSE (Seit ver. 3.5.0) :

    Die Java-Anwendung wird unterbrochen, wenn Unterbrechen aktiviert ist und die JVM läuft. Sehen Sie die wrapper.pausable Eigenschaft für mehr Details.

  • RESUME (Seit Ver. 3.5.0) :

    Die Java-Anwendung wird fortgesetzt werden, wenn sie sich in einem unterbrochenen Zustand befand. Dies könnte genutzt werden, wenn die JVM im unterbrochenen Zustand nicht beendet wurde. Sehen Sie die wrapper.pausable Eigenschaft für Details.

  • NONE :

    Dies deaktiviert den Timer auf effiziente Weise. Es kann nützlich sein, den Timer zu deaktivieren statt zu löschen, um zu vermeiden, aufeinanderfolgende Timer umnumerieren zu müssen.

Verkettung mehrfacher Aktionen:

Von der Wrapper Version 3.5.0 an ist es möglich, mehrere Aktionen zu spezifizieren, indem man diese - getrennt duch eine Leerstelle oder Komma - trennt. Wenn mehr als eine Aktion spezifiziert wurde, dann werden diese in rascher Abfolge in der spezifizierten Reihenfolge ausgeführt.

Das folgende Beispiel führt einen Thread-Dump aus und startet dann die JVM jeden Tag um 4:00 morgens neu.

Beispiel:
wrapper.timer.1.action=DUMP,RESTART
wrapper.timer.1.interval=hour=4

wrapper.timer.<n>.interval Eigenschaft

Kompatibel :3.3.0
Editionen :Professional EditionStandard Edition (Not Supported)Community Edition (Not Supported)
Betriebssysteme :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

Timer-Zeiträume können durch Nutzen einer Kombination von Token aufgebaut werden. Zum Beispiel wird das folgende Beispiel "die JVM jeden zweiten Tag, um 04:30:10 neu starten":

Beispiel:
wrapper.timer.1.action=RESTART
wrapper.timer.1.interval=day-of-week=*/2; hour=4; minute=30; second=10

Zeitintervall-Token können die folgenden Werte haben:

  • Wochentag : Spezifiziert den Wochentag. Akzeptierte Werte liegen im Bereich von 1 (Sonntag) - 7 (Samstag).

  • Stunde : Spezifiziert die Tagesstunde. Akzeptierte Werte im Bereich von 0 - 23.

  • Minute : Spezifiziert die Minute. Akzeptierte Werte im Bereich von 0 - 59.

  • Sekunde : Spezifiziert die Sekunde. Akzeptierte Werte im Bereich von 0 - 59.

Token-Werte können die folgenden Formate haben:

  • Absoluter Wert :

    Ein Wert wie 5 wird genutzt, um einen einfachen Wert zu spezifizieren. Zum Beispiel, "hour=5" bedeutet "5 Uhr".

  • Alle Werte :

    Ein Wert wie * wird genutzt, um alle möglichen Werte für das Token wie auch für ein Platzhalter-Zeichen zu spezifizieren.

    Zum Beispiel ist "hour=*" das Gleiche wie "hour=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23"

  • Alle Werte, die mit Offset starten: (Version 3.5.25)

    Ein Wert wie *+OFFSET wird genutzt, um alle möglichen Werte für Token zu spezifizieren, die mit einem spezifischen Offset starten.

    Zum Beispiel ist "hour=*+10" äquivalent zu "hour=10,11,12,13,14,15,16,17,18,19,20,21,22,23"

  • Werteintervall :

    Ein Wert wie */INTERVAL wird genutzt, um einen Wertesatz in regelmäßigen Intervallen, beginnend mit dem kleinstmöglichen Wert für das Token, zu spezifizieren.

    Zum Beispiel ist "minute=*/5" das Gleiche wie "minute=0,5,10,15,20,25,30,35,40,45,50,55", bedeutet, dass der Timer alle 5 Minuten gestartet wird.

  • Werteintervall, welches am Offset startet: (Version 3.5.25)

    Ein Wert wie *+OFFSET/INTERVAL wird genutzt, um einen Wertesatz zu regelmäßigen Intervallen zu spezifizieren, beginnend mit dem kleinstmöglichen Wert für das Token plus den spezifizierten Offset.

    Zum Beispiel ist "minute=*+3/5" das Gleiche wie "minute=3,8,13,18,23,28,33,38,43,48,53,58", was bedeutet, dass der Timer alle 5 Minuten, beginnend von der 3. Minute starten wird.

  • Wertebereich: (Version 3.5.25)

    Ein Wert wie LOW-HIGH wird genutzt, um einen Wertebereich zu spezifizieren.

    Zum Beispiel ist "minute=5-8" das Gleiche wie "minute=5,6,7,8".

  • Werteliste: (Version 3.5.25)

    Alles von dem Obengenannten kann in eine durch Kommata getrennte Liste kombiniert werden.

    Zum Beispiel ist "minute=*/10,*+2/10" das Gleiche wie "minute=0,2,10,12,20,22,30,32,40,42,50,52".

    Zum Beispiel ist "minute=1-3,10-12" das Gleiche wie "minute=1,2,3,10,11,12".

    Zum Beispiel ist "minute=2-5,*/10" das Gleiche wie "minute=0,2,3,4,5,10,20,30,40,50".

In den meisten Fällen werden nicht alle möglichen Token in einer Intervalldeklaration spezifiziert werden. Wenn Token ausgelassen werden, bekommen größere Token einen Standardwert von *. Kleinere Token werden auf den minimalen Tokenwert festgelegt.

Diese Deklarationen sind identisch:
wrapper.timer.1.interval=hour=4
wrapper.timer.1.interval=hour=4; minute=0; second=0
wrapper.timer.1.interval=day-of-week=*; hour=4
wrapper.timer.1.interval=day-of-week=*; hour=4; minute=0; second=0

wrapper.timer.max_catchup Eigenschaft

Kompatibel :3.3.0
Editionen :Professional EditionStandard Edition (Not Supported)Community Edition (Not Supported)
Betriebssysteme :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OSIBM z/Linux

Wenn die Systemzeit sich ändert, ist es möglich, dass eins oder mehr Timer-Ereignisse während dieser Zeitspanne gestartet wurden. Der Wrapper versucht, den Anschluss zu behalten, indem er alle diese Ereignisse in schneller Abfolge startet. Wenn die Anzahl groß ist, kann dies zu ungewünschten Ergebnissen führen.

Diese Eigenschaft ermöglicht es, die maximale Zeidauer zu konfigurieren, die dem Timer gewährt wird, um sich auf dem neuesten Stand zu halten. Der Standardwert ist "60 Sekunden".

Beispiel: (60 Sekunden)
wrapper.timer.max_catchup=60

NOTE

Ab der Version 3.5.29 nutzt der Wrapper eine neue Methode, um Timer nachzuholen, die während ausgelassenen oder wiederholten Zeiten aufgrund einer Zeitumstellung geplant wurden.

Wenn die Uhr bei der Umstellung auf Sommerzeit nach vorne gestellt wird, werden nur Timer, die auf einer täglichen Basis während der ausgelassenen Zeit geplanten wurden, auf den neuesten Stand kommen.

Auf die gleiche Weise werden täglich eingestellte Timer, wenn die Uhr zurückgestellt wird, nicht neu ausgeführt werden.

Die betroffenen Timer sind diese, welche im Bezeichner 'hour' oder 'minute' haben und '*' nicht benutzen, sondern 'day-of-week' oder 'hour' spezifiziert haben.

NOTE

Vor der Wrapper Version 3.5.24 gab es ein Problem, welches zur Folge haben konnte, dass Timer nicht mehr funktionieren würden, wenn sie während des Ausgleichsintervall terminiert worden wären. Diese Eigenschaft sollte auf einen genügend großen Wert gesetzt werden, um ein solches Auftreten zu verhindern. Ein Wert von 3600 beugt vor, dass Probleme während Zeitzonenänderungen auftreten.