2012-05-08 5 views
31

Ich versuche, jvisualvm mit jdk1.7.0_04 installiert zu einem lokal laufenden Java-Prozess zu verbinden. Wenn ich dies tue, zeigt jvisualvm links unten eine Fortschrittsleiste an, die sagt, dass es sich mit dem Prozess verbindet, und antwortet dann nie wieder.Java VisualVM hängt Verbindung zu lokalen Prozess von Eclipse gestartet

Der Java-Prozess, mit dem ich mich verbinden möchte, ist immer noch in Ordnung und funktioniert wie gewohnt.

Ich kann einen Threaddump von Visualvm mit Jstack erhalten, die 1 blockierten Thread zeigt.

Ich kann keine Verbindung zu einem Java-Prozess herstellen, auch nicht zu einem trivialen Prozess, der nur auf Benutzereingaben wartet. Ich hatte auch das gleiche Problem mit jdk1.6.0_32.

- Updates Ich habe festgestellt, dies betrifft nur Java-Prozesse, die ich von Eclipse starten. Es ist möglich, den Befehl eclipse aus der Debug-Perspektive zu starten und die Prozesseigenschaften zu öffnen. Das Starten desselben Prozesses über die Eingabeaufforderung (mit dem Befehl, den ich von Eclipse kopiert habe) ermöglicht Verbindungen von jvisualvm und jconsole.

Voll Thread-Dump:

2012-05-10 13:18:47 
Full thread dump Java HotSpot(TM) Client VM (23.0-b21 mixed mode, sharing): 

"Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.TimedSoftReference]" daemon prio=2 tid=0x00e12800 nid=0xa5c in Object.wait() [0x0587f000] 
java.lang.Thread.State: TIMED_WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x22d6a578> (a java.lang.Object) 
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1880) 
    - locked <0x22d6a578> (a java.lang.Object) 

Locked ownable synchronizers: 
    - None 

"pool-4-thread-1" prio=6 tid=0x063ddc00 nid=0x1a70 waiting on condition [0x0750f000] 
java.lang.Thread.State: WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x23440068> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) 
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - None 

"pool-3-thread-1" prio=6 tid=0x00fe7400 nid=0x16a0 waiting on condition [0x05a7f000] 
java.lang.Thread.State: WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x28a7ccd8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) 
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - None 

"Timer-1" daemon prio=2 tid=0x04c63800 nid=0x1f00 in Object.wait() [0x07f1f000] 
java.lang.Thread.State: TIMED_WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x289e6688> (a java.util.TaskQueue) 
    at java.util.TimerThread.mainLoop(Timer.java:552) 
    - locked <0x289e6688> (a java.util.TaskQueue) 
    at java.util.TimerThread.run(Timer.java:505) 

Locked ownable synchronizers: 
    - None 

"TimerQueue" daemon prio=6 tid=0x04b82c00 nid=0x124 waiting on condition [0x070df000] 
java.lang.Thread.State: TIMED_WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x285f8b20> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082) 
    at java.util.concurrent.DelayQueue.take(DelayQueue.java:220) 
    at javax.swing.TimerQueue.run(TimerQueue.java:171) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - <0x2862c110> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) 

"Thread-3" daemon prio=6 tid=0x04b7b400 nid=0x1c18 in Object.wait() [0x06edf000] 
java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x28562950> (a java.util.LinkedList) 
    at java.lang.Object.wait(Object.java:503) 
    at java.util.prefs.AbstractPreferences$EventDispatchThread.run(AbstractPreferences.java:1476) 
    - locked <0x28562950> (a java.util.LinkedList) 

Locked ownable synchronizers: 
    - None 

"DataSourceWindowManager Processor" daemon prio=2 tid=0x04b28c00 nid=0x11e0 runnable [0x06cdf000] 
java.lang.Thread.State: RUNNABLE 
    at sun.tools.attach.WindowsVirtualMachine.connectPipe(Native Method) 
    at sun.tools.attach.WindowsVirtualMachine.execute(WindowsVirtualMachine.java:100) 
    at sun.tools.attach.HotSpotVirtualMachine.loadAgentLibrary(HotSpotVirtualMachine.java:58) 
    at sun.tools.attach.HotSpotVirtualMachine.loadAgentLibrary(HotSpotVirtualMachine.java:79) 
    at sun.tools.attach.HotSpotVirtualMachine.loadAgent(HotSpotVirtualMachine.java:103) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelImpl$LocalVirtualMachine.loadManagementAgent(JmxModelImpl.java:676) 
    - locked <0x23440218> (a com.sun.tools.visualvm.jmx.impl.JmxModelImpl$LocalVirtualMachine) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelImpl$LocalVirtualMachine.startManagementAgent(JmxModelImpl.java:633) 
    - locked <0x23440218> (a com.sun.tools.visualvm.jmx.impl.JmxModelImpl$LocalVirtualMachine) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelImpl$ProxyClient.tryConnect(JmxModelImpl.java:450) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelImpl$ProxyClient.connect(JmxModelImpl.java:420) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelImpl.connect(JmxModelImpl.java:200) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelImpl.<init>(JmxModelImpl.java:170) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelProvider.createModelFor(JmxModelProvider.java:45) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelProvider.createModelFor(JmxModelProvider.java:22) 
    at com.sun.tools.visualvm.core.model.ModelFactory.getModel(ModelFactory.java:91) 
    - locked <0x289f8fe0> (a com.sun.tools.visualvm.jvmstat.application.JvmstatApplication) 
    at com.sun.tools.visualvm.tools.jmx.JmxModelFactory.getJmxModelFor(JmxModelFactory.java:49) 
    at com.sun.tools.visualvm.application.views.threads.ApplicationThreadsViewProvider.resolveThreads(ApplicationThreadsViewProvider.java:63) 
    at com.sun.tools.visualvm.application.views.threads.ApplicationThreadsViewProvider.supportsViewFor(ApplicationThreadsViewProvider.java:29) 
    at com.sun.tools.visualvm.application.views.threads.ApplicationThreadsViewProvider.supportsViewFor(ApplicationThreadsViewProvider.java:25) 
    at com.sun.tools.visualvm.core.ui.DataSourceViewsManager.getViews(DataSourceViewsManager.java:116) 
    at com.sun.tools.visualvm.core.ui.DataSourceWindowManager.openWindowAndAddView(DataSourceWindowManager.java:169) 
    at com.sun.tools.visualvm.core.ui.DataSourceWindowManager.access$000(DataSourceWindowManager.java:30) 
    at com.sun.tools.visualvm.core.ui.DataSourceWindowManager$1.run(DataSourceWindowManager.java:80) 
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1385) 
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1929) 

Locked ownable synchronizers: 
    - None 

"AWT-EventQueue-0" prio=6 tid=0x049fa000 nid=0x1b90 waiting on condition [0x062af000] 
java.lang.Thread.State: WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x28310488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) 
    at java.awt.EventQueue.getNextEvent(EventQueue.java:511) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:213) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:97) 

Locked ownable synchronizers: 
    - None 

"AWT-Windows" daemon prio=6 tid=0x049cc000 nid=0x12b0 runnable [0x0608f000] 
java.lang.Thread.State: RUNNABLE 
    at sun.awt.windows.WToolkit.eventLoop(Native Method) 
    at sun.awt.windows.WToolkit.run(WToolkit.java:299) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - None 

"AWT-Shutdown" prio=6 tid=0x049cb400 nid=0x1954 in Object.wait() [0x05e8f000] 
java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x28430620> (a java.lang.Object) 
    at java.lang.Object.wait(Object.java:503) 
    at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287) 
    - locked <0x28430620> (a java.lang.Object) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - None 

"Java2D Disposer" daemon prio=10 tid=0x010a4000 nid=0x1dd4 in Object.wait() [0x05c8f000] 
java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x28378258> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) 
    - locked <0x28378258> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) 
    at sun.java2d.Disposer.run(Disposer.java:145) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - None 

"CLI Requests Server" daemon prio=6 tid=0x01058000 nid=0x1a58 runnable [0x0567f000] 
java.lang.Thread.State: RUNNABLE 
    at java.net.TwoStacksPlainSocketImpl.socketAccept(Native Method) 
    at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398) 
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:183) 
    - locked <0x28378700> (a java.net.SocksSocketImpl) 
    at java.net.ServerSocket.implAccept(ServerSocket.java:522) 
    at java.net.ServerSocket.accept(ServerSocket.java:490) 
    at org.netbeans.CLIHandler$Server.run(CLIHandler.java:1042) 

Locked ownable synchronizers: 
    - None 

"Active Reference Queue Daemon" daemon prio=2 tid=0x01028c00 nid=0x17b4 in Object.wait() [0x049af000] 
java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x28378878> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) 
    - locked <0x28378878> (a java.lang.ref.ReferenceQueue$Lock) 
    at org.openide.util.lookup.implspi.ActiveQueue$Impl.run(ActiveQueue.java:64) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - None 

"Timer-0" daemon prio=6 tid=0x01015400 nid=0x1ce8 in Object.wait() [0x047af000] 
java.lang.Thread.State: TIMED_WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x28378910> (a java.util.TaskQueue) 
    at java.util.TimerThread.mainLoop(Timer.java:552) 
    - locked <0x28378910> (a java.util.TaskQueue) 
    at java.util.TimerThread.run(Timer.java:505) 

Locked ownable synchronizers: 
    - None 

"Service Thread" daemon prio=6 tid=0x00e7b400 nid=0x4a8 runnable [0x00000000] 
java.lang.Thread.State: RUNNABLE 

Locked ownable synchronizers: 
    - None 

"C1 CompilerThread0" daemon prio=10 tid=0x00e76000 nid=0x13e0 waiting on condition [0x00000000] 
java.lang.Thread.State: RUNNABLE 

Locked ownable synchronizers: 
    - None 

"Attach Listener" daemon prio=10 tid=0x00e74400 nid=0x448 waiting on condition [0x00000000] 
java.lang.Thread.State: RUNNABLE 

Locked ownable synchronizers: 
    - None 

"Signal Dispatcher" daemon prio=10 tid=0x00e73000 nid=0x1eb4 runnable [0x00000000] 
java.lang.Thread.State: RUNNABLE 

Locked ownable synchronizers: 
    - None 

"Finalizer" daemon prio=8 tid=0x00e60400 nid=0x1f28 in Object.wait() [0x03b1f000] 
java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x28378b58> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) 
    - locked <0x28378b58> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) 
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177) 

Locked ownable synchronizers: 
    - None 

"Reference Handler" daemon prio=10 tid=0x00e5ec00 nid=0x1d40 in Object.wait() [0x0391f000] 
java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x283782e8> (a java.lang.ref.Reference$Lock) 
    at java.lang.Object.wait(Object.java:503) 
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133) 
    - locked <0x283782e8> (a java.lang.ref.Reference$Lock) 

Locked ownable synchronizers: 
    - None 

"main" prio=6 tid=0x00db8000 nid=0x12f0 waiting on condition [0x00000000] 
java.lang.Thread.State: RUNNABLE 

Locked ownable synchronizers: 
    - None 

"VM Thread" prio=10 tid=0x00e5d000 nid=0xbf8 runnable 

"VM Periodic Task Thread" prio=10 tid=0x00e7e800 nid=0x1fcc waiting on condition 

JNI global references: 656 
+0

Funktionieren 'jconsole' und' jmap'? – artbristol

+0

@artbristol - Jmap funktioniert gut und ich kann einen binären Heap-Dump erhalten. jconsole kann auch keine Verbindung herstellen. Der Fortschritts-Schieberegler "Mit verbinden" springt für immer hin und her. Beachten Sie, dass jmap auch keine Verbindung herstellen kann, wenn ich zuerst versucht habe, eine Verbindung entweder mit jconsole oder jvisualvm herzustellen. – lukestevo

+0

Bitte posten Sie den gesamten Thread-Dump von VisualVM, nicht nur AWT-EventQueue. –

Antwort

20

Bitte überprüfen Sie Ihre Netzwerkkonfiguration.

Ich experimentierte das gleiche Problem. Es kann funktionieren, wenn ich die Netzwerkkonfiguration mit 'Kein Proxy' einstelle. Hauptmenü: tools/options/network/no proxy.

+1

Das Problem hat sich gelöst, ich bin mir nicht sicher warum. Ich stellte eine Verbindung zu lokal ausgeführten Prozessen her und hätte daher nicht gedacht, dass die Proxyeinstellungen Auswirkungen haben würden. – lukestevo

+3

danke für den Tipp. Es dauerte eine ganze Weile, bis ich zu diesem albernen Proxy-Problem ... – insitu

1

Manchmal sitzt Skype auf seltsamen Ports ... Das hat mir mindestens zweimal große Kopfschmerzen bereitet, als es 8080 wählte, und ich dachte mein Tomcat ist beschädigt. Es stellte sich heraus (nach ungefähr einer Stunde völlig ahnungslos und ahnungslos), dass Skype diesen Port benutzte ...

Auch eine Frage: hast du dein Programm im 'Run' oder 'Debug' Modus von Eclipse gestartet ?

5

Ich hatte das gleiche Problem und ich bin hinter einem Proxy. Wenn Sie entweder "Kein Proxy" oder "Manuelle Proxy-Einstellungen" auswählen, wird das Problem behoben.

Eine solche einfache Sache, und ich habe ein paar Stunden auf dieser verschwendet ...

+0

Mann, das war es wirklich! Das funktioniert tatsächlich! –

5

In meinem Fall war die Lösung 32bit jsdk zu verwenden.
Zur Diagnose Start jvisualvm mit param --trace ..

mein log enthalten: erweitert

-XX Registerkarte
Cannot load C:\Program Files\Java\jdk1.7.0_45\jre\bin\server\jvm.dll. %1 is not a valid Win32 application. (193) Falling back to running Java in a separate process; DLL cannot be loaded (64-bit DLL?).

+1

Ach komm schon Oracle .. – Odys

0

die follwing Argument in Eclipse runConfigurations hinzufügen: + StartAttachListener

Dies ermöglicht visualVM sofort zu verbinden und Probe und Profiling funktioniert.

10

Versuchen Sie, die folgenden VM Argumente auf Ihre "Run Configurations" hinzuzufügen:

-Djava.rmi.server.hostname=localhost 

Run configuration

15

Fand dieses auf einer VisualVM Mailingliste: https://java.net/projects/visualvm/lists/users/archive/2016-06/message/7

hat dieses Bild:

-J-Dorg.netbeans.profiler.separateConsole=true 

zu meiner jvisualvm.exe Verknüpfung ein D es funktioniert!

+1

Hatte das gleiche Problem wie [Konstantin] (http://stackoverflow.com/a/26183213/245495) und dies löste es. Danke – Odys

+0

Es löst mein Problem. – CDT

+0

** Das ist das, was wirklich funktioniert **, Jungs! – ForNeVeR