2014-09-04 3 views
9

Wenn ich ein Java-Programm von Eclipse mit jvisualvm 1.3.8 begann profilieren will erhalte ich die Fehlermeldung innerhalb von Eclipse Konsole:jvisualvm: Software hat Verbindungsabbruch verursacht: socket Schreibfehler

Software caused connection abort: socket write error. 

Dies geschieht auch, wenn ich Starten Sie das Programm ohne Eclipse (java -jar ...) über die Kommandozeilenkonsole. Ich habe jvisualvm von JDK 1.8.0_20 getestet und die neueste Version 1.3.8 heruntergeladen. Hier ist der Stacktrace:

Profiler Agent: Waiting for connection on port 5140 (Protocol version: 15) 
Profiler Agent: Established connection with the tool 
Profiler Agent: Local accelerated session 
Profiler Agent: Connection with agent closed 
Profiler Agent Error: Exception when trying to send response or command to client: 
java.net.SocketException: Software caused connection abort: socket write error 
*** Profiler engine warning: class load hook invoked at inappropriate time for java.lang.Throwable$PrintStreamOrWriter, loader = null 
*** This class will not be instrumented unless you re-run the instrumentation command 
*** Please report this problem to [email protected] 
=============================== Stack trace ===================== 
*** Profiler engine warning: class load hook invoked at inappropriate time for java.lang.Throwable$WrappedPrintStream, loader = null 
*** This class will not be instrumented unless you re-run the instrumentation command 
*** Please report this problem to [email protected] 
=============================== Stack trace ===================== 
*** Profiler engine warning: class load hook invoked at inappropriate time for java.util.IdentityHashMap$KeySet, loader = null 
*** This class will not be instrumented unless you re-run the instrumentation command 
*** Please report this problem to [email protected] 
=============================== Stack trace ===================== 
java.lang.Exception: Stack trace 
     at java.lang.Thread.dumpStack(Thread.java:1329) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.classLoadHook(ProfilerInterface.java:912) 
     at java.util.IdentityHashMap.keySet(IdentityHashMap.java:976) 
     at java.util.Collections$SetFromMap.<init>(Collections.java:5512) 
     at java.util.Collections.newSetFromMap(Collections.java:5496) 
     at java.lang.Throwable.printStackTrace(Throwable.java:650) 
     at java.lang.Throwable.printStackTrace(Throwable.java:643) 
     at java.lang.Throwable.printStackTrace(Throwable.java:634) 
     at java.lang.Thread.dumpStack(Thread.java:1329) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.classLoadHook(ProfilerInterface.java:912) 
     at java.lang.Throwable.printStackTrace(Throwable.java:643) 
     at java.lang.Throwable.printStackTrace(Throwable.java:634) 
     at java.lang.Thread.dumpStack(Thread.java:1329) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.classLoadHook(ProfilerInterface.java:912) 
     at java.lang.Throwable.printStackTrace(Throwable.java:643) 
     at org.netbeans.lib.profiler.server.ProfilerServer.handleIOExceptionOnSend(ProfilerServer.java:1698) 
     at org.netbeans.lib.profiler.server.ProfilerServer.sendComplexCmdToClient(ProfilerServer.java:706) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.sendRootClassLoadedCommand(ProfilerInterface.java:1418) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.access$900(ProfilerInterface.java:70) 
     at org.netbeans.lib.profiler.server.ProfilerInterface$InitiateProfilingThread.initiateInstrumentation(ProfilerInterface.java:232) 
     at org.netbeans.lib.profiler.server.ProfilerInterface$InitiateProfilingThread.run(ProfilerInterface.java:137) 
=============================== End stack trace ================= 
java.lang.Exception: Stack trace 
     at java.lang.Thread.dumpStack(Thread.java:1329) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.classLoadHook(ProfilerInterface.java:912) 
     at java.lang.Throwable.printStackTrace(Throwable.java:643) 
     at java.lang.Throwable.printStackTrace(Throwable.java:634) 
     at java.lang.Thread.dumpStack(Thread.java:1329) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.classLoadHook(ProfilerInterface.java:912) 
     at java.lang.Throwable.printStackTrace(Throwable.java:643) 
     at org.netbeans.lib.profiler.server.ProfilerServer.handleIOExceptionOnSend(ProfilerServer.java:1698) 
     at org.netbeans.lib.profiler.server.ProfilerServer.sendComplexCmdToClient(ProfilerServer.java:706) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.sendRootClassLoadedCommand(ProfilerInterface.java:1418) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.access$900(ProfilerInterface.java:70) 
     at org.netbeans.lib.profiler.server.ProfilerInterface$InitiateProfilingThread.initiateInstrumentation(ProfilerInterface.java:232) 
     at org.netbeans.lib.profiler.server.ProfilerInterface$InitiateProfilingThread.run(ProfilerInterface.java:137) 
=============================== End stack trace ================= 
java.lang.Exception: Stack trace 
     at java.lang.Thread.dumpStack(Thread.java:1329) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.classLoadHook(ProfilerInterface.java:912) 
     at java.lang.Throwable.printStackTrace(Throwable.java:643) 
     at org.netbeans.lib.profiler.server.ProfilerServer.handleIOExceptionOnSend(ProfilerServer.java:1698) 
     at org.netbeans.lib.profiler.server.ProfilerServer.sendComplexCmdToClient(ProfilerServer.java:706) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.sendRootClassLoadedCommand(ProfilerInterface.java:1418) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.access$900(ProfilerInterface.java:70) 
     at org.netbeans.lib.profiler.server.ProfilerInterface$InitiateProfilingThread.initiateInstrumentation(ProfilerInterface.java:232) 
     at org.netbeans.lib.profiler.server.ProfilerInterface$InitiateProfilingThread.run(ProfilerInterface.java:137) 
=============================== End stack trace ================= 
java.net.SocketException: Software caused connection abort: socket write error 
     at java.net.SocketOutputStream.socketWrite0(Native Method) 
     at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) 
     at java.net.SocketOutputStream.write(SocketOutputStream.java:153) 
     at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1877) 
     at java.io.ObjectOutputStream$BlockDataOutputStream.writeBytes(ObjectOutputStream.java:1985) 
     at java.io.ObjectOutputStream$BlockDataOutputStream.writeUTF(ObjectOutputStream.java:2168) 
     at java.io.ObjectOutputStream$BlockDataOutputStream.writeUTF(ObjectOutputStream.java:2007) 
     at java.io.ObjectOutputStream.writeUTF(ObjectOutputStream.java:869) 
     at org.netbeans.lib.profiler.wireprotocol.RootClassLoadedCommand.writeObject(RootClassLoadedCommand.java:159) 
     at org.netbeans.lib.profiler.wireprotocol.WireIO.sendComplexCommand(WireIO.java:301) 
     at org.netbeans.lib.profiler.server.ProfilerServer.sendComplexCmdToClient(ProfilerServer.java:703) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.sendRootClassLoadedCommand(ProfilerInterface.java:1418) 
     at org.netbeans.lib.profiler.server.ProfilerInterface.access$900(ProfilerInterface.java:70) 
     at org.netbeans.lib.profiler.server.ProfilerInterface$InitiateProfilingThread.initiateInstrumentation(ProfilerInterface.java:232) 
     at org.netbeans.lib.profiler.server.ProfilerInterface$InitiateProfilingThread.run(ProfilerInterface.java:137) 
Profiler Agent Error: Exception when handling command from client: 
java.net.SocketException: Software caused connection abort: recv failed 
Profiler Agent: Connection with agent closed 

Danach wird der Port 5140 von meiner Anwendung geöffnet, um profiliert zu werden. Ich habe viel gegoogelt und konnte dabei keine Hilfe finden. Ich habe auch ein anderes einfaches Programm geschrieben und der Fehler ist auch aufgetreten.

Was kann ich tun?

+0

Laufen Sie in einer Unternehmensumgebung? Ich bekomme das gleiche Problem und vermute, dass dies entweder auf die Firewall des Unternehmens oder andere Netzwerküberwachungssoftware zurückzuführen ist, die auf dem lokalen Computer ausgeführt wird. – darrenmc

Antwort

0

Ich habe dies ein paar Mal angetroffen. Auf welcher OS-Plattform läuft dies? Windows? oder * nix?

Unter Windows müssen Sie fast sicher Ihre Eclipse und/oder den jvisualvm mit Admin-Rechten ausführen ... Normalerweise richte ich die Eingabeaufforderung Run as ... Administrator ein.

Unter Linux müssen Sie Eclipse und/oder jvisualvm entweder als Root oder mit einem Konto ausführen, das über Zugriffsrechte verfügt, die dem Konto entsprechen oder dieses überschreiten, auf dem die zu überwachende PID ausgeführt wird.

0

Dies ist definitiv ein Firewall-Problem. Höchstwahrscheinlich haben Sie keine Rechte, Ihre Firewall zu deaktivieren, wenn ein Betriebssystem Sie nicht fragt (Windows). In meinem Fall hatte ich schließlich die Anwendung auf einer anderen Box ausgeführt, wo ich Rechte hatte, um JVisualVM zu erlauben, sich mit meiner Anwendung zu verbinden.

Verwandte Themen