Obtenez tas de vidage à partir d'une distance de l'application en Java à l'aide de JVisualVM

- Je exécuter JVisualVM (Windows XP, Sun Java 1.6.0.13, 32 bits client VM) pour surveiller un lointain application (Linux, Sun Java 1.6.0.07, 64 bit server VM). Avant de commencer la distance réelle de l'application, je me lance sur la machine distante jstatd l'aide d'un tout de la politique d'accès:

grant codebase "file:${java.home}/../lib/tools.jar" {
   permission java.security.AllPermission;
};

Puis j'ai commencer à l'application à l'aide de la ligne de commande

 java -Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.port=3333 
compileTest.Main

À partir de la machine client, je peux voir le lointain application et de le surveiller. Je peux aussi faire un thread dump etc. Malheureusement, le tas de vidage bouton est grisé.

Comment puis-je obtenir un tas de vidage d'un surveillés à distance de l'application à l'aide de JVisualVM?

J'ai essayé d'utiliser jConsole. Avec jConsole il est possible de faire un lointain tas de vidage à l'aide de la com.soleil.de la gestion.HotSpotDiagnostic dumpHeap opération. Je veux le dump pour être transféré sur le côté client et analysées en utilisant les outils fournis par JVisualVM. Comment puis-je faire cela?

l'exécution de jvisualvm que le même utilisateur qui exécute le processus java peut aider
bon point! J'ai navigué ma façon à cette question/sujet, car j'ai la même question que stackoverflow.com/questions/8799929/..., et je pense que votre déclaration/hypothèse est correcte. Quand je lance tomcat/tomee via mon NetBeans IDE sur mon PC développeur/serveur, puis le Sampler>bouton de Mémoire est activé, mais le Sampler>bouton de Mémoire est désactivée sur le serveur de production, depuis tomcat/tomee est en cours d'exécution en tant que service Windows, et je ne suis pas connecté en service de la production du système ou local. 🙁

OriginalL'auteur Philipp | 2009-04-07