Lokalen java-Prozesse sind ausgegraut, wenn Sie versuchen, eine Verbindung über JMX
Ich bin mit einer Anzahl von java-Prozesse auf einer windows XP professional Maschine. Wenn ich versuche zu verbinden, um diese Prozesse über einen lokalen JConsole die Prozesse sind ausgegraut.
Aber ich kann laufen die gleichen Prozesse auf einem anderen Rechner und die Verbindung über eine lokale JConsole auf dieser Maschine.
Beide Maschinen sind mit java 1.6-version für die Prozesse und jconsole.
Irgendwelche Ideen, warum diese Prozesse sind ausgegraut?
sind beide Maschinen die gleiche version von java 1.6? ich habe eine vage Erinnerung, dass es einige Fehler im Zusammenhang mit diesem Zeug in einigen jdk 1.6 Versionen.
Ich lief einen der Prozesse und die jconsole mit genau der gleichen JDK in dem Verzeichnis. Dennoch, der Prozess zeigt Grau.
richtig, Frage ich mich, wenn die 2 unterschiedliche Boxen sind mit der gleichen version des jdk.
ich habe versucht zu deinstallieren und neu installieren Sie eine neue version des JDK an, und es funktioniert immer noch nicht. Aber ich bemerkte, dass es ein system-classpath mit einigen Verweis auf eine java-Bibliothek für quicktime. ich wünschte, ich hatte es kopiert. aber ich un-quicktime installiert und jetzt funktioniert alles.
Ich lief einen der Prozesse und die jconsole mit genau der gleichen JDK in dem Verzeichnis. Dennoch, der Prozess zeigt Grau.
richtig, Frage ich mich, wenn die 2 unterschiedliche Boxen sind mit der gleichen version des jdk.
ich habe versucht zu deinstallieren und neu installieren Sie eine neue version des JDK an, und es funktioniert immer noch nicht. Aber ich bemerkte, dass es ein system-classpath mit einigen Verweis auf eine java-Bibliothek für quicktime. ich wünschte, ich hatte es kopiert. aber ich un-quicktime installiert und jetzt funktioniert alles.
InformationsquelleAutor richs | 2011-05-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kämpfe ich mit diesem Problem jetzt, und ich fand heraus, eine Arbeit um:
Ändern können Sie die lokalen Benutzer-temp-Verzeichnis auf etwas, das Sie können auf jeden Fall zugreifen (z.B. D:\temp). Stellen Sie sicher, dass dies für den Prozess, den Sie versuchen zu überwachen und die jconsole Prozess.
Andere Sache, die kann anscheinend zu Problemen führen, sind Benutzernamen mit Großbuchstaben in Ihnen. Das Verzeichnis wird immer erstellt, in der alle Kleinbuchstaben, sondern einfach nur eine Umbenennung zu genau, wie es gezeigt wird in der Task-Manager alle Probleme Weggehen: http://planeofthought.com/wp/?p=75
Dieses one-hit den Nagel auf den Kopf für mich. Ich hatte auch ein problem durch umbenennen das Verzeichnis, aber ich war in der Lage, die Verwendung der Sysinternals Process Explorer-tool, um festzustellen, dass meine Kopie von SmartSVN hatte das Verzeichnis gesperrt. Dann habe ich nur Herunterfahren, SmartSVN, das Verzeichnis umbenannt und alles war in Ordnung. Das Verzeichnis neu erstellt werden, sich in den richtigen Fall.
So hart wie es ist zu glauben, das tatsächlich funktioniert! I. e. Einstellung TEMP " und " TMP " sowohl zu c:\temp. Unglaublich. Danke!
InformationsquelleAutor RegRog
wenn die Prozesse ausgeführt werden als ein anderer Benutzer (z.B. wenn Sie Sie als Dienste starten), dann werden Sie nicht in der Lage sein, um Sie zu verbinden. auch, wenn Sie ausgeführt werden, die unter einer älteren jvm, werden Sie wahrscheinlich nicht in der Lage sein, mit Ihnen zu sprechen.
in einigen Fällen die lokalen jmx-Kommunikation-Mechanismus, verwendet das lokale Dateisystem und können gelegentlich Probleme auftreten, wenn Berechtigungen nicht richtig definiert. sind Sie möglicherweise laufen diese Prozesse auf Netzwerk-Dateisysteme (nfs, samba)?
InformationsquelleAutor jtahlborn
Sagen Ihrem windows-Benutzernamen, den Sie verwenden, um starten Sie Ihre java-Anwendung gesehen, die im task-manager ist BENUTZERNAME.
Bitte überprüfen Sie einen Ordner, dessen name aussieht wie hsperfdata_XXXXX (XXXXX soll Ihr Benutzername sein) in deinem temp-Ordner und stellen Sie sicher, dass BENUTZERNAME und XXXXX sind genau die gleichen (achten Sie auf die groß-und Kleinschreibung).
InformationsquelleAutor Roland
Vom http://download.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html:
Abbildung 3-1 Erstellen einer Verbindung zu einem Lokalen Prozess http://download.oracle.com/javase/6/docs/technotes/guides/management/figures/connect.gif
Trotz allem, was wird in der SCHRIFTLICHEN Dokumentation, die meisten wahrscheinlich, Ihr Prozess läuft unter einem anderen Benutzer. Sie können laufen
jconsole
als administrator an und probiere dann.Hi Tomasz Laufenden jconsole als administrator das problem nicht löst (obwohl ich denken würde, es würde). Haben Sie in dieser? Interessanterweise läuft der Process Explorer als Administrator aktivieren, um zu sehen, das Prozess-Informationen für diese bestimmte Java-Prozess. Die Problemumgehung ist die Verwendung
com.sun.management.jmxremote.port
und verbinden über "Remote-Prozess", aber es ist nicht eine optimale Lösung für mich, da ich viele Prozesse laufen und die Zuweisung von individuellen ports an Ihnen problematisch ist.InformationsquelleAutor Tomasz Nurkiewicz
Hier ist was für mich gearbeitet. Ich änderte meine
%TEMP%
und%TMP%
environment-Variablen auf einen Ordner zeigen, die ich meine%HOME%
Lage (wieC:\Users\[YOUR_NAME]\Temp
). Sobald ich dies getan habe, sind alle Probleme verschwunden.InformationsquelleAutor Ayodeji Babaniyi
Ändern Sie Ihre TEMP-Pfade in die Umgebungsvariablen so etwas wie D:\temp wie könnte es ein Berechtigungsproblem. Behoben das Problem für mich
InformationsquelleAutor Nikhil
Hatte ich das problem, wie oben beschrieben, aber geraten wurde, eine einfachere Lösung: schließen Sie alle Programme, die Java verwenden ("IntelliJ IDEA", "SoapUI", etc. - zum entriegeln die temporären Ordner) und löschen Sie dann
%TMP%\hsperfdata_<user.name>
Ordner. Dann, nach dem öffnen einer Java-Programm, wird dieser Ordner neu erstellt werden, aber dieses mal mit richtigen Namen (wahrscheinlich%TMP%\hsperfdata_<User.Name>
). Und danach in der lokalen Java-Prozesse können überwacht werden durch "JConsole" oder "VisualVM" (läuft jetzt ohne Fehler mit einem link zu VisualVM: Anleitung Zur Fehlerbehebung) wieder.InformationsquelleAutor evgeny9
anstatt diese Schritte können Sie nur springen die CMD und geben Sie dann in jconsole.exe (PID)
Daran denken, gehen Sie zu dem Pfad, wo jconsole vorhanden ist und führen Sie die ausführbare Datei.
InformationsquelleAutor Pranjal Gohain