Index

wrapper.timer.<n>.<x>

Compatibilité :3.3.0
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

AVERTISSEMENT

NE MODIFIEZ AUCUN de ces paramètres sauf si vous avez lu cette description de propriété. Des paramètres incorrects peuvent empêcher le Wrapper de fonctionner comme prévu.

Les propriétés de minuterie permettent de planifier des redémarrages de la JVM, des arrêts ou des vidages de threads à des heures ou des intervalles spécifiques, à la manière d'une tâche cron. Ceci peut être utile dans les cas où l'application utilisateur fuit de la mémoire ou a d'autres exigences nécessitant des redémarrages périodiques.

Paramètre de base :

L'exemple suivant redémarrera la JVM tous les jours à exactement 4 heures du matin.

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

Chaque déclaration de minuterie se compose de deux propriétés :

Composant <n> :

Le composant « <n> » du nom de la propriété est un nombre entier commençant à « 1 ». Par défaut, la numérotation doit être séquentielle, sans lacunes. La propriété wrapper.ignore_sequence_gaps peut éventuellement être définie pour autoriser des lacunes dans la séquence.

propriété wrapper.timer.<n>.action

Compatibilité :3.3.0
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Les actions de minuterie peuvent avoir les valeurs suivantes :

  • DEBUG :

    Chaque fois que la minuterie se déclenche, un message de débogage sera enregistré. Ceci n'est vraiment utile que pour aider à comprendre le fonctionnement des minuteries.

  • STATS (Depuis la ver. 3.5.52, Édition Standard /Professional) :

    affichera les statistiques de performance.

  • DUMP :

    Demande à la JVM d'effectuer un vidage des threads chaque fois que la minuterie se déclenche. Ceci peut être utile pour identifier des problèmes de mémoire ou de performance lorsque vous n'êtes pas sûr du moment exact où ils se produisent. Assurez-vous que vos propriétés de journalisation ont été configurées pour gérer les fichiers journaux volumineux si vous définissez l'intervalle à une fréquence élevée. Ignoré si la JVM n'est pas en cours d'exécution.

  • GC (Depuis la ver. 3.5.7) :

    invoquera un balayage complet du ramasse-miettes dans la JVM. Sachez que le faire fréquemment peut affecter les performances de la JVM car un balayage complet entraînera souvent le gel de tous les threads pendant la durée du GC. Ignoré si la JVM n'est pas en cours d'exécution.

  • RESTART :

    L'application Java sera redémarrée chaque fois que la minuterie se déclenche. Ignoré si la JVM n'est pas en cours d'exécution.

  • SHUTDOWN :

    Le Wrapper sera arrêté lorsque la minuterie se déclenche. Cela ne peut évidemment se produire qu'une seule fois, sauf si le Wrapper est relancé de l'extérieur.

  • USER_<n> (Depuis la ver. 3.5.0, Édition Professional) :

    Un événement défini par l'utilisateur à déclencher.

  • PAUSE (Depuis la ver. 3.5.0) :

    L'application Java sera mise en pause si la pause est activée et que la JVM est en cours d'exécution. Consultez la propriété wrapper.pausable pour plus de détails.

  • RESUME (Depuis la ver. 3.5.0) :

    L'application Java sera reprise si elle est dans un état de pause. Ceci peut être utilisé si la JVM n'est pas arrêtée lorsqu'elle est en pause. Consultez la propriété wrapper.pausable pour plus de détails.

  • SUSPEND_TIMEOUTS_<n> (Depuis la ver. 3.5.40, Édition Standard /Professional) :

    Indique au Wrapper de suspendre tous les délais d'attente utilisés lorsque la JVM ne répond pas. <n> spécifie le nombre de secondes pendant lesquelles les délais d'attente doivent être suspendus, et doit être compris dans la plage 1-3600 (1 h). Ceci peut être utilisé si l'application Java doit effectuer une longue tâche bloquante et éviter que le Wrapper considère l'application comme ne répondant pas.

    Les délais d'attente peuvent également être suspendus via d'autres propriétés d'action, le fichier de commandes ou la méthode Java WrapperManager.suspendTimeouts().

    Si plusieurs demandes de suspension des délais d'attente sont effectuées, le nombre de secondes spécifié par chaque demande ne sera pas additionné. Au lieu de cela, le nouveau délai spécifié remplacera le temps de suspension restant s'il est plus long, et sera ignoré dans le cas contraire.

  • RESUME_TIMEOUTS (Depuis la ver. 3.5.40, Édition Standard /Professional) :

    Indique au Wrapper de reprendre tous les délais d'attente précédemment suspendus.

    Les délais d'attente peuvent également être repris via d'autres propriétés d'action, le fichier de commandes ou la méthode Java WrapperManager.resumeTimeouts().

  • NONE :

    Ceci désactive effectivement la minuterie. Il peut être utile de désactiver une minuterie plutôt que de la supprimer afin d'éviter d'avoir à renuméroter les minuteries suivantes.

Enchaînement de plusieurs actions :

À partir de la version 3.5.0 du Wrapper, il est possible de spécifier plus d'une action en les séparant par un espace ou une virgule. Lorsque plusieurs actions sont spécifiées, elles seront exécutées en succession rapide dans l'ordre spécifié.

L'exemple suivant effectuera un vidage des threads puis redémarrera la JVM tous les jours à 4 heures du matin.

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

propriété wrapper.timer.<n>.interval

Compatibilité :3.3.0
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Les intervalles de minuterie peuvent être construits à l'aide d'une combinaison de jetons. Par exemple, l'exemple suivant « redémarrera la JVM tous les deux jours à 04:30:10 » :

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

Les jetons d'intervalle peuvent avoir les valeurs suivantes :

  • day-of-week : Spécifie le jour de la semaine. Valeurs acceptables dans la plage 1 (dimanche) - 7 (samedi).

  • hour : Spécifie l'heure du jour. Valeurs acceptables dans la plage 0 - 23.

  • minute : Spécifie la minute. Valeurs acceptables dans la plage 0 - 59.

  • second : Spécifie la seconde. Valeurs acceptables dans la plage 0 - 59.

Les valeurs des jetons peuvent avoir les formats suivants :

  • Valeur absolue :

    Une valeur comme 5 est utilisée pour spécifier une valeur unique. Par exemple, "hour=5" signifie « 5 heures ».

  • Toutes les valeurs :

    Une valeur comme * est utilisée pour spécifier toutes les valeurs possibles du jeton ainsi qu'un caractère générique.

    Par exemple, "hour=*" est identique à "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".

  • Toutes les valeurs, à partir d'un décalage : (Version 3.5.25)

    Une valeur comme *+OFFSET est utilisée pour spécifier toutes les valeurs possibles du jeton, en commençant par le décalage spécifié.

    Par exemple, "hour=*+10" est identique à "hour=10,11,12,13,14,15,16,17,18,19,20,21,22,23".

  • Intervalle de valeurs :

    Une valeur comme */INTERVAL est utilisée pour spécifier un ensemble de valeurs à intervalles réguliers en commençant par la valeur minimale possible du jeton.

    Par exemple, "minute=*/5" est identique à "minute=0,5,10,15,20,25,30,35,40,45,50,55", ce qui signifie que la minuterie se déclenchera toutes les 5 minutes.

  • Intervalle de valeurs, à partir d'un décalage : (Version 3.5.25)

    Une valeur comme *+OFFSET/INTERVAL est utilisée pour spécifier un ensemble de valeurs à intervalles réguliers en commençant par la valeur minimale possible du jeton plus le décalage spécifié.

    Par exemple, "minute=*+3/5" est identique à "minute=3,8,13,18,23,28,33,38,43,48,53,58", ce qui signifie que la minuterie se déclenchera toutes les 5 minutes à partir de la 3e minute.

  • Plage de valeurs : (Version 3.5.25)

    Une valeur comme LOW-HIGH est utilisée pour spécifier une plage de valeurs.

    Par exemple, "minute=5-8" est identique à "minute=5,6,7,8".

  • Listes de valeurs : (Version 3.5.25)

    Tous les formats ci-dessus peuvent être combinés dans une liste séparée par des virgules.

    Par exemple, "minute=*/10,*+2/10" est identique à "minute=0,2,10,12,20,22,30,32,40,42,50,52".

    Par exemple, "minute=1-3,10-12" est identique à "minute=1,2,3,10,11,12".

    Par exemple, "minute=2-5,*/10" est identique à "minute=0,2,3,4,5,10,20,30,40,50".

Dans la plupart des cas, tous les jetons possibles ne seront pas spécifiés dans une déclaration d'intervalle. Lorsque des jetons sont omis, les jetons plus grands recevront une valeur par défaut de *. Les jetons plus petits seront définis à la valeur minimale du jeton.

Ces déclarations sont identiques :
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

propriété wrapper.timer.max_catchup

Compatibilité :3.3.0
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Lorsque l'heure système change, il est possible qu'un ou plusieurs événements de minuterie auraient dû se déclencher pendant cette plage de temps. Le Wrapper tentera de rattraper le retard en déclenchant tous ces événements en succession rapide. Lorsque le nombre est élevé, cela peut provoquer des résultats indésirables.

Cette propriété permet de configurer la durée maximale pendant laquelle la minuterie sera autorisée à rattraper le retard. La valeur par défaut est « 60 secondes ».

Exemple : (60 secondes)
wrapper.timer.max_catchup=60

NOTE

À partir de la version 3.5.29, le Wrapper utilise une nouvelle méthode pour rattraper les minuteries qui auraient été planifiées pendant le temps sauté ou répété en raison d'un changement d'heure d'été.

Lorsque l'horloge avance pour passer à l'heure d'été, seules les minuteries qui étaient planifiées quotidiennement pendant le temps qui a été sauté rattraperont le retard.

De la même manière, lorsque l'horloge recule, les minuteries planifiées quotidiennement ne seront pas réexécutées.

Les minuteries concernées sont celles n'utilisant pas « * » dans les spécificateurs « hour » ou « minute », et ayant soit « day-of-week » soit « hour » spécifié.

NOTE

Il y avait un problème avant la version 3.5.24 du Wrapper qui pouvait entraîner l'arrêt du fonctionnement des minuteries si elles avaient été planifiées pendant l'intervalle de rattrapage. Cette propriété doit être définie à une valeur suffisamment grande pour empêcher cela de se produire. Une valeur de 3600 évitera les problèmes lors des changements de fuseau horaire.