Comment puis-je accéder à l'utilisation de la mémoire par programmation via JMX?
Je suis à la recherche pour Java exemple JMX code pour accéder aux valeurs de JMX attributs à partir d'une autre machine virtuelle.
Avec JConsole, je n'ai pas de problème à java.lang/Mémoire/Attributs/HeapMemory
Comment puis-je obtenir les mêmes informations à partir d'un programme Java s'exécutant dans une machine virtuelle?
Des exemples de toutes les options de ligne de commande nécessaire, ou d'autres choses qui doivent être commencé apprécié.
Vous devez vous connecter pour publier un commentaire.
Vous devez configurer un JMXConnector. Voici un extrait de code qui vous permettra d'obtenir l'engagement des tas utilisation de la mémoire sur une machine distante.
Si vous ne se soucient pas de la sécurité vous pouvez régler la carte à la valeur null. Vous devez démarrer le serveur distant;
Vous voudrez peut-être jeter un oeil à wlshell qui est un petit utilitaire qui vous permet d'accéder à MBeans sur un serveur distant à l'aide d'une interface en mode texte ou d'un script, Il peut être utilisé avec WebLogic, mais il fonctionne pour n'importe quel programme Java où vous avez activé la surveillance à distance.
MemoryUsage memuse = MemoryUsage.from((CompositeData) o);
@Kire la réponse semble bon, mais je pensais que je voudrais ajouter quelques détails sur mon SimpleJMX paquet. Il contient en charge de serveur qui vous permet d'exporter les haricots facilement et aussi une simple interface client qui fonctionne contre toute JVM que les exportations de JMX de l'information.
D'accéder à la mémoire d'utilisation que vous feriez quelque chose comme:
newPlatformMXBeanProxy
je l'ai utilisé pour obtenir les fils d'une autre machine virtuelle, mais je n'ai pas pu faire la même chose pour obtenir la gestion de la mémoire. Votre question la réponse correcte est la solution, mais j'ai vraiment besoin de le faire comme cette réponse...C'est comment vous obtenez le MemoryMXBean à distance (à compléter @Adamski réponse):