Accueil Product Support IT Modernization Abort JVM (IBM): usefull information for java problem investigation

Informations utiles à collecter en cas d'abort de la JVM IBM

Quelles sont les informations à fournir au support en cas de crash de la JVM IBM ?

 

 

Produit JVM IBM
Version 4, 5 ,6
OS Aix

 

Recommandations pour collecter les informations utiles au support

 

En cas de crash de la JVM sur des exceptions (SIGSEGV, SIGILL...), il est conseillé de founir le java core, le core dump et les librairies partagées associées à la JVM et à l'application.

 

 

Générer un core complet

Pour obtenir un core complet, lancer la commande suivante (avant le lancement de la JVM):

chdev -l sys0 -a fullcore=true

 

Modifier les valeurs de ulimit

Pour l'utilisateur lançant la JVM, positionner les limites suivantes (tailles du core et des fichiers):

- soit par la commande :

ulimit -c unlimited -f unlimited

- soit en positionnant core=-1 et file =-1 dans le fichier /etc/security/limits

Attention au mot-clé "unlimited": la commande précédente positionne la limite maximum de la limite hardware (rendue par la commande ulimit -H -c -f)

Si les limites sont positionnées dans le fichier etc/security/limits, les valeurs de core_hard et fsize_hard ne doivent pas être positionnées à des valeurs trop faibles (si elles sont différentes de -1)

Après modification des valeurs (soft ou hard) dans le fichier /etc/security/limits, se reconnecter au système pour que les modifications soient prises en compte, et vérifier ces valeurs par les commandes:

ulimit -a
ulimit -Ha

 

Localiser le fichier core

Par défaut, le fichier core est créé dans le répertoire courant (répertoire d'où est lancée la JVM).
La génération du core peut être redirigée vers un autre répertoire (ayant plus d'espace) par la commande (sous Aix 5.3):

syscorepath -p alternate_directory

S'assurer que l'utilisateur qui lancera la JVM possède les droits de lecture et d'écriture sur ce répertoire.

Positionner les variables d'environnement

Connecté au système sous l'utilisateur lançant la JVM,, exporter les variables suivantes:

export IBM_NOSIGHANDLER=true
export JAVA_DUMP_OPTS="ONANYSIGNAL(NONE)"


Lancer la JVM. Le crash de la JVM sur un signal (11 par exemple) génèrera un fichier core.

En effet, l'export de "JAVA_DUMP_OPTS="ONANYSIGNAL(NONE)" demande à la JVM de ne pas traiter le signal.
Le fichier core est alors généré par AIX.

 

Collecter les données

Les librairies partagées utilisées par le process au moment du crash peuvent être collectées par la commande snapcore:

 

snapcore -d save_directory core.001 fullpath_executable

 

 

Documentation

 

- Troubleshooting Java code on AIX: Data collection for AIX core dumps

- Diagnostics Guide

— Mots-clés associés :
Demande d'assistance
Création et suivi
Recherche