Le "heap dump" ou "memory dump" contient une copie de la mémoire qui permet d'identifier un certain nombre de problèmes liés à celle-ci. On le réalise généralement suite à une erreur de type OutOfMemoryError ( Java heap space ou PermGen Space )
Attention : ce 'dump' peut être long à générer et fige l'application durant sa génération. Il faut par ailleurs disposer de suffisamment d'espace disque pour accueillir l'image.

Méthode console :
L'utilitaire "jmap " se trouve dans le répertoire "/bin" de votre JDK.
Utilisez une (Restricted access link) .

jmap -dump:format=b,file=<FILENAME.hprof> <PID_DU_PROCESS_JAVA>

Notez que parfois sous Linux vous aurez besoin d'executer la commande avec le compte qui execute tomcat avec une commande de ce type :

sudo su -l tomcat -s /bin/bash -c 'jmap -dump:format=b,file=<FILENAME.hprof> <PID_DU_PROCESS_JAVA>'

Auto-Dump :
Lorsqu’une application a tendance à lever des exceptions de type "OutOfMemory", il est possible d’indiquer à la JVM lors de son initialisation qu’elle doit créer un dump si une erreur de ce type apparaît.

-XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=/home/heap_dump/

Méthode graphique :
Si vous pouvez vous connecter avec jvisualvm, la génération du "heap dump" peut se faire directement par le menu contextuel :

jvisualvm-thread-dump

Note : Dans jvisualvm vous pouvez aussi réaliser un "application snapshot". Ceci ne réalisera pas de dump de l'application, mais sauvegardera une image de tout le travail relatif à l'application que vous avez effectué dans_jvisualvm_ : l'état des profiler, les différents "dumps" réalisés... dans le but de pouvoir les visualiser à nouveau tels quels plus tard.