Nicht anzeigen Visual GC im VisualVM
Ich bin mit Java VisualVM auf meinem lokalen windows-Rechner zu überwachen, meinem remote-server(Linux).
Ich bin in der Lage, alle stats in Bisual VM außer "Visual GC". Es zeigt "Nicht Unterstützt für diese JVM". Ich habe es gegoogelt und finde, dass es sein könnte, weil jstatd wird nicht ausgeführt und angeschlossen werden. So ausgeführt "jstatd -J-Djava.Sicherheit.policy=/tmp/tools.Politik".
Es zeigt eine ip "175.41.139.225". Ich kann nicht verstehen, warum es versucht, Verbindung zu dieser ip. Es ist nicht die ip von meinem remote-Maschine noch von meiner lokalen Maschine.
[root@shipping_pt mail]# jstatd -J-Djava.security.policy=/tmp/tools.policy
Could not contact registry
Connection refused to host: 175.41.139.225; nested exception is:
java.net.ConnectException: Connection refused
java.rmi.ConnectException: Connection refused to host: 175.41.139.225; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:340)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at java.rmi.Naming.rebind(Naming.java:177)
at sun.tools.jstatd.Jstatd.bind(Jstatd.java:57)
at sun.tools.jstatd.Jstatd.bind(Jstatd.java:66)
at sun.tools.jstatd.Jstatd.main(Jstatd.java:143)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at java.net.Socket.connect(Socket.java:495)
at java.net.Socket.<init>(Socket.java:392)
at java.net.Socket.<init>(Socket.java:206)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:146)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
... 8 more
InformationsquelleAutor ajay | 2013-04-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf dem remote-server,
Hinzufügen,
Und starten jstatsd
ist und Sie bereit sind, die mit Visual GC-innen VisualVM auf der lokalen Maschine.
InformationsquelleAutor Hemant Thorat
Du hast Recht, die Sie ausführen müssen, um den jstatd nutzen zu können VisualGC plugin, weil VisualGC verwendet jvmstat API. Es sieht aus wie Sie sind runnign jstatd als root. Wird Sie überwacht die Anwendung läuft als Benutzer 'root'? Wie funktioniert /tmp/tools.policy-Datei aussieht? Versuchen zu laufen, jstatd mit der folgenden Argumente:
Nach der Ausführung
jstatd -J-Djava.rmi.server.hostname=<IP address of shipping_pt> -J-Djava.security.policy=/tmp/tools.policy
ich bin noch immer die gleiche exception wie oben. Nur die IP ist anders und es ist noch die ip, die ich angegeben habe, weder meiner MaschineJedes mal, wenn ich ausführen die gleichen oben angegebenen Befehl zeigt dieselbe Ausnahme, aber mit verschiedenen random IP ' s
Connection refused to host: <some random IP>; nested exception is:
Können Sie versuchen zu laufen
jstatd
als tomcat-Benutzer? Es ist seltsam, dass-J-Djava.rmi.server.hostname=
Ihnen nicht helfen. Vielleicht ist dieser thread tinyurl.com/c3q4sj3 wird Ihnen helfen. Im Allgemeinen scheint das problem verursacht zu werden durch die Tatsache, dassjstatd
kann nicht herausfinden, die IP-Adresse Ihrer Maschine.Berechtigungen!! ja, das war mein problem: ich war laufen, eclipse als administrator, aber nicht jvisualvm. Vielen Dank, Tomas.
InformationsquelleAutor Tomas Hurka
VsiualVM ist sehr version abhängig. Wenn Sie verbinden können, aber einige Funktionen nicht verfügbar ist, würde ich sicherstellen, dass Sie ausgeführt werden, die genau die gleiche version von Java.
Wenn Sie keine Verbindung herstellen können, müssen Sie die Berechtigungen ändern Ihrer JVM. Hinweis: Sie können nur sehen, Ihre Prozesse standardmäßig.
Sie können es, aber eine version von VisualVM nicht alle Funktionen aktiviert haben Sie ein anderes JDK. Vielleicht wurde behoben in der neuesten Versionen. Ich nehme Sie über
jstat
Vielen Dank für die Anregung, aber ich bin immer oben-Ausnahme beim ausführen von jstat auf meinem remote-Maschine. Also ich denke, es ist definitiv nichts zu tun mit der Visual VM version.
Es wäre nützlich, wenn Sie einige Beispiel. Beachten Sie, dass die Funktionen sind verfügbar, wenn Sie überwacht die JVM unterstützt. Dort ist auch Unterschied in der feature-set für die local/remote-überwachung. VisualVM nutzt verschiedene Technologien (jvmstat, JMX, Attach-API, SA), um den Zugang überwacht die JVM). Einige von denen sind nicht verfügbar in einigen Versionen der JVM oder im remote-Fall. Zum Beispiel JMX ist in JDK 5, einige Funktionen unter Berufung auf JMX sind nicht verfügbar, wenn die überwachung ältere JDK. Ebenso legen Sie die API funktioniert nur für lokale Anwendungen und dafür ist Funktion sich auf es funktioniert nicht im remote-Fall.
InformationsquelleAutor Peter Lawrey