wrapper.jvm_kill.delay

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

Cette propriété contrôle le nombre de secondes de pause entre le déclenchement de l'événement jvm_kill et le moment où la JVM est effectivement tuée.

La valeur par défaut est « 0 » (zéro) seconde.

Exemple :
wrapper.jvm_kill.delay=0

Lorsque le Wrapper décide de tuer la JVM, certaines applications souhaitent d'abord exécuter une commande externe afin d'effectuer une action sur la JVM avant qu'elle ne soit tuée. Cela s'effectue à l'aide de l'une des propriétés « commande d'événement » (wrapper.event.<event_name>.command.argv.<n>) et de l'événement jvm_kill. Bien qu'il soit possible de définir la propriété wrapper.event.<event_name>.command.block pour s'assurer que la commande se termine avant de continuer, certaines applications rencontreraient encore des problèmes de temporisation nécessitant un délai supplémentaire.

Le Wrapper peut être configuré pour demander un dump de threads avant de tuer la JVM à l'aide de la propriété interne wrapper.request_thread_dump_on_failed_jvm_exit. Cependant, à titre d'exemple, cela peut également être réalisé en exécutant une commande en réponse à l'événement jvm_kill.

Unix :

Sous UNIX, un dump de threads peut également être déclenché en envoyant un signal SIGQUIT au processus JVM. L'événement jvm_kill se produit immédiatement avant que le processus JVM ne soit tué. Cela signifie que la JVM aura probablement déjà été tuée au moment où le signal est réellement envoyé. Pour contourner ce problème de temporisation, nous ajoutons un délai de 5 secondes entre l'exécution de la commande externe et le moment où le Wrapper tue effectivement la JVM.

Exemple Unix :
wrapper.jvm_kill.delay=5
wrapper.event.jvm_kill.command.loglevel=INFO
wrapper.event.jvm_kill.command.argv.1=kill
wrapper.event.jvm_kill.command.argv.2=-SIGQUIT
wrapper.event.jvm_kill.command.argv.3=%WRAPPER_EVENT_JVM_PID%

Windows :

Cela peut également être réalisé sous Windows lorsque l'application s'exécute en tant que service. L'exemple suivant suppose que le service s'appelle « MyApp ». La valeur « 255 » doit correspondre à celle de la propriété wrapper.thread_dump_control_code.

Exemple Windows :
wrapper.jvm_kill.delay=5
wrapper.event.jvm_kill.command.loglevel=INFO
wrapper.event.jvm_kill.command.argv.1=sc
wrapper.event.jvm_kill.command.argv.2=control
wrapper.event.jvm_kill.command.argv.3="MyApp"
wrapper.event.jvm_kill.command.argv.4=255

Démarrage-Redémarrage : Délai