Bonjour,

Comment puis-je détecter depuis mon application si l'instance Tomcat fait de l'OutOfMemory (OOM) ou pas ?

Actuellement, je monitors mon applications en cherchant un mot clé dans une page.
Cette page réalise plusieurs contrôles internes et si l'application tourne bien, elle renvoie un statut valide. Et inversement en cas de problème.

Et il arrive que le Tomcat tombe en OOM (Java Heap full) - application down mais la page de monitoring fonctionne toujours -.
Pour pouvoir optimiser cette page de monitoring, je souhaiterai savoir si il possible de vérifier l'état de la mémoire depuis mon appli?


Dans un premier temps, j'ai essayé cela:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
double totalMem = Runtime.getRuntime().totalMemory();
double maxMem = Runtime.getRuntime().maxMemory();
double marge = 0.995; 
 
if(totalMem > ( maxMem * marge )){
	err = "Full memory";
}else{
	err = "RAS";
}

Et après test, c'est pas top. Certain moment, Tomcat utilise 100% de la mémoire mais il ne crache pas d'OOM et l'application fonctionne bien.