2013-04-15 13 views
18

Normalerweise sehe ich all diese Registerkarten in VisualVM für lokal laufenden Java-Programme:Warum zeigt VisualVM nicht alle normalen Registerkarten an?

enter image description here

Allerdings habe ich ein lokales Programm haben, die zur Zeit nur mir Übersicht zeigt und Monitor (auch wenn es in der Regel alle, die zeigt, gezeigt oben):

enter image description here

interessant ist auch, dass VisualVM sich nicht auf die Registerkarte Profil, jedoch ist:

enter image description here

Alle drei gezeigten Programme laufen mit derselben JVM mit dem gleichen Java Home.

Was steuert, welche Registerkarten für ein bestimmtes Programm angezeigt werden? Wie kann ich sie für mein Programm, das nur Overview und Monitor zeigt, zurückbekommen?

Ich habe Visual VM 1.3.5 (spätestens zu diesem Zeitpunkt) und JDK 1.7.0_17.

+0

Es gibt eine bestimmte https: // Verbindung, die dieses Programm zu einer externen Site herstellt. Wenn ich diese Funktionalität abstelle (also keine Anfragen gemacht werden), bekomme ich alle meine Tabs in VisualVM. Hmm .... – jlarson

Antwort

9

Möglicherweise müssen Sie die jmx-Ports in Ihrer App aktivieren. Versuchen Sie, diese Schalter zu Ihren VM hinzufügen und sehen, ob die Tabs wieder erscheinen:

-Dcom.sun.management.jmxremote.port=6789 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

+1

das sind alle lokalen Programme - gilt das noch? – jlarson

+0

Ich wollte mal meinen lokalen jboss profilieren und in diesem Fall hat es ja einen Unterschied gemacht. Ich kann mich nicht erinnern, ob ich den Jmx-Port zu VisualVM hinzufügen musste oder es selbst gefunden habe. – Farzad

+0

Überraschenderweise löste es es für mich – Owen

12

Ich fand, dass dies das Problem der Verwendung von falscher JDK-Version war. In meinem Fall lief meine Anwendung auf 64bit JDK und ich startete VisualVM von 32bit JDK. Nach dem Starten von VisualVM aus dem gleichen JDK, auf dem meine Anwendung läuft, war alles in Ordnung. Hoffe es wird dir helfen.

1

Was für mich gearbeitet wurde die Angabe der „Profilierung starten von“ Klassen. Wenn ich dieses Feld leer gelassen habe, habe ich den Tab Profiler nicht erhalten. Als ich es spezifiziert habe, tat ich es. Ich sollte wahrscheinlich bemerken, dass dies eine Webanwendung war, die unter Tomcat läuft, also habe ich org.apache.catalina.startup.** als Startklasse angegeben.

0

Überprüfen Sie, ob Proxy deaktiviert, wenn Sie VisualVM laufen für die lokale Anwendung

0

Ich hatte ein ähnliches Problem mit Profiler Tab in VisualVM fehlt. Ich verwende Oracle JDK 1.8 und möchte eine Webanwendung erstellen, die auf Tomcat 8 ausgeführt wird (JPA, Spring, Hibernate, Vaadin usw.).

Ich versuchte alle oben genannten Lösungen und viele andere im Internet gefunden, aber leider keine von ihnen gelöst fehlende Profiler Registerkarte Problem.

Also ich wechselte zu Java Mission Control Profiling-Tool (JMC + Flight Recorder), die ein Teil der Standard-Oracle JDK ist (von JDK 1.7 Update 40) und es funktioniert super.

Verwandte Themen