[JAVA] Configuré pour redémarrer automatiquement lorsque Tomcat déclenche une OutOfMemoryError

Des fuites de mémoire se produisent. Cependant, je voudrais être dispensé d'être informé que le site est tombé en panne pendant de longues vacances, j'ai donc étudié la méthode.

1: Préparez un fichier de commandes que vous souhaitez exécuter automatiquement lorsque OutOfMemoryError se produit.

Exemple: Créez un fichier comme ↓ restartTomcat.sh et placez-le dans un emplacement approprié (/ usr / local / tomcat / bin, etc.).

restartTomcat.sh


#!/bin/bash

#restart tomcat (exemple) Si vous souhaitez exécuter une commande autre que redémarrer, écrivez-la ensemble. Comme sauter des e-mails.
systemctl restart tomcat.service

2: Ajoutez XX: OnOutOfMemoryError à l'option jvm de Tomcat.

Ajoutez l'option suivante à la variable d'environnement CATALINA_OPTS pour spécifier la commande à exécuter lorsque OutOfMemoryError se produit.

Une façon de spécifier l'option Tomcat jvm est Si vous placez un fichier appelé "setenv.sh" dans / usr / local / tomcat / bin, il sera lu depuis catalina.sh au démarrage de Tomcat.

Exemple:

setenv.sh



export CATALINA_OPTS="$CATALINA_OPTS -XX:OnOutOfMemoryError=\"/usr/local/tomcat/bin/restartTomcat.sh\""

Cela exécutera restartTomcat.sh sur OutOfMemoryError.

3: HeapDump est également généré.

Si vous souhaitez également générer HeapDump, ajoutez les deux options suivantes à la variable d'environnement CATALINA_OPTS.

--- XX: + HeapDumpOnOutOfMemoryError (HeapDump est généré au moment de OutOfMemoryError.) --- XX: HeapDumpPath (Spécifiez la destination de sortie de HeapDump ci-dessus.)

Exemple:

setenv.sh



export CATALINA_OPTS="$CATALINA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
export CATALINA_OPTS="$CATALINA_OPTS -XX:HeapDumpPath=/usr/local/tomcat/logs"
export CATALINA_OPTS="$CATALINA_OPTS -XX:OnOutOfMemoryError=\"/usr/local/tomcat/bin/restartTomcat.sh\""

Recommended Posts

Configuré pour redémarrer automatiquement lorsque Tomcat déclenche une OutOfMemoryError
Lorsqu'il est difficile de configurer un serveur SMTP localement lors de l'envoi de courrier avec Python.
Un mémorandum lors de l'acquisition automatique avec du sélénium
Soyez prudent lors de l'ajout d'un tableau à un tableau