Index

wrapper.ping.timeout

Compatibilité :1.0.0
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

AVERTISSEMENT

NE MODIFIEZ AUCUN de ces paramètres à moins d'avoir lu la description de cette propriété. Des paramètres incorrects peuvent empêcher le Wrapper de fonctionner comme prévu.

Nombre de secondes à autoriser entre deux réponses de ping provenant de la JVM.

La valeur par défaut est "30 secondes".

Exemple :
wrapper.ping.timeout=30

Définir la valeur de cette propriété à "0" (zéro) signifie ne jamais expirer. Le délai d'expiration du ping doit être au moins 5 secondes plus long que la valeur de wrapper.ping.interval. Le Wrapper modifiera la valeur à l'exécution si nécessaire pour éviter les problèmes.

En fonctionnement normal, le Wrapper envoie un ping à la JVM toutes les 5 secondes pour s'assurer que son processus n'est pas figé. Le délai d'expiration du ping est le temps accordé pour 2 réponses de la JVM avant que le Wrapper ne considère qu'elle est bloquée et ne la redémarre.

Cette propriété contrôle également le temps que la JVM autorisera à s'écouler sans recevoir de ping du Wrapper. Si le Wrapper n'envoie pas de ping à la JVM pendant une durée supérieure au délai spécifié, celle-ci se terminera, permettant au Wrapper de se resynchroniser en lançant une nouvelle JVM. Cela garantit également que la JVM se terminera si le processus Wrapper est arrêté de manière anormale. (En tuant le processus Wrapper dans le Gestionnaire des tâches Windows, ou en utilisant le signal "kill -9" sur les systèmes UNIX.)

À partir de la version 3.5.21 du Wrapper, l'édition Professional du Wrapper déclenchera également un événement jvm_ping_timeout chaque fois que ce seuil aura été dépassé.

Avec l'ajout de la propriété wrapper.cpu.timeout, il n'y a désormais presque aucune raison de modifier cette propriété. Les seules raisons pour lesquelles vous obtiendriez des délais d'expiration de ping sont si le système est sous une charge élevée ou si la JVM est réellement bloquée. Le délai d'expiration CPU devrait maintenant détecter tout problème lié au CPU.

AVERTISSEMENT

Bien que cette possibilité existe, sachez que définir la valeur de cette propriété à "0" (zéro) (= désactiver le Timeout) ou à une valeur élevée signifie que la capacité du Wrapper à détecter un blocage de la JVM pendant son exécution sera désactivée.

Notez également que si le processus Wrapper est tué de manière anormale ou, Dieu nous en préserve, plante, alors la JVM n'essaiera jamais de se resynchroniser avec le Wrapper. Si le Wrapper s'exécutait en tant que service Windows à ce moment-là, il peut alors être nécessaire de redémarrer la machine pour arrêter le processus Java. Avec les délais d'expiration de ping normaux, la JVM se terminerait d'elle-même après quelques secondes.

Lorsque la propriété wrapper.java.detect_debug_jvm est définie à "TRUE" et que la détection du débogueur fonctionne, cette propriété "timeout" sera ignorée.

wrapper.ping.timeout.action

Compatibilité :3.5.16
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Cette propriété permet de spécifier une action particulière à effectuer chaque fois qu'un délai d'expiration de ping se produit après les secondes spécifiées dans la propriété wrapper.ping.timeout ci-dessus.

Par souci de cohérence et de rétrocompatibilité, l'action par défaut est spécifiée comme RESTART.

Exemple :
wrapper.ping.timeout.action=RESTART

Les actions possibles sont :

  • DEBUG (Depuis la ver. 3.5.0) :

    entraînera l'enregistrement d'un message de débogage. Ceci n'est vraiment utile que pour aider à comprendre quand l'action est déclenchée.

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

    affichera les statistiques de performances.

  • DUMP (Depuis la ver. 3.3.6) :

    invoquera un dump de threads.

  • GC (Depuis la ver. 3.5.7) :

    invoquera un cycle complet de ramasse-miettes (garbage collection) dans la JVM. Sachez que le faire fréquemment peut affecter les performances de la JVM, car un cycle complet gèlera souvent tous les threads pendant toute la durée du GC.

  • RESTART :

    arrêtera la JVM actuelle puis redémarrera une nouvelle invocation.

  • SHUTDOWN :

    arrêtera la JVM ainsi que le Wrapper.

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

    déclenchera un événement défini par l'utilisateur. Cela peut être soit l'envoi d'un e-mail, soit l'exécution d'une commande système externe. La commande peut aller de l'exécution d'opérations de nettoyage jusqu'à l'émission d'un trap SNMP.

  • PAUSE (Depuis la ver. 3.5.0) :

    mettra en pause l'application Java 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) :

    reprendra l'application Java si elle est dans un état de pause. Cela 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'expiration utilisés lorsque la JVM ne répond pas. <n> spécifie le nombre de secondes pendant lesquelles suspendre les délais d'expiration, et doit être compris dans la plage 1-3600 (1 h). Cela peut être utilisé si l'application Java doit effectuer une longue tâche bloquante et éviter que le Wrapper ne considère l'application comme ne répondant pas.

    Les délais d'expiration 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'expiration sont effectuées, le nombre de secondes spécifié par chaque demande ne sera pas additionné. Au lieu de cela, le temps nouvellement 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'expiration précédemment suspendus.

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

  • SUCCESS (Depuis la ver. 3.5.5) :

    indiquera au Wrapper de réinitialiser son compteur interne d'invocations échouées et de compter l'invocation actuelle de la JVM comme « réussie ». Cela peut être utile dans les applications conçues pour redémarrer avec une fréquence assez élevée.

  • NONE :

    est utile car elle empêchera tout déclencheur avec un numéro plus élevé d'être déclenché.

NOTE

Veuillez noter que si la JVM est complètement figée, certaines des actions pourraient toutefois ne pas pouvoir être traitées par la JVM, par ex. GC, DUMP

Enchaînement de plusieurs actions :

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 tentera d'effectuer un dump de threads puis de redémarrer la JVM. Le dump de threads n'aura lieu que si la JVM n'est pas complètement figée.

Exemple :
wrapper.ping.timeout.action=DUMP,RESTART

Référence : ping

Référence : Délai d'attente