AttachNotSupportedException
尝试开始JFR记录时收到提示。到现在为止,它一直在正常工作。
jcmd 3658 JFR.start maxsize=100M filename=jfr_1.jfr dumponexit=true settings=profile
输出:
3658: com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded at sun.tools.attach.LinuxVirtualMachine.(LinuxVirtualMachine.java:106) at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:63) at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:208)
可能会发生什么?
因此:Oracle Linux Server 6.7版
$ java -version java version "1.8.0_102" Java(TM) SE Runtime Environment (build 1.8.0_102-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
apangin.. 5
可能的原因之一是/tmp/.java_pid1234
文件已被删除(其中1234是Java进程的PID)。
依赖于动态附加机制的工具(jstack,jmap,jcmd,jinfo)通过在创建的UNIX域套接字与JVM通信/tmp
。JVM在第一次尝试连接时延迟创建该套接字,如果-XX:+StartAttachListener
指定了标志,则在JVM初始化时急切地创建此套接字。
删除与套接字相对应的文件后,工具将无法连接到目标进程,并且不幸的是,没有重新启动JVM就无法重新创建通信套接字。
有关动态附加机制的说明,请参见此答案。
可能的原因之一是/tmp/.java_pid1234
文件已被删除(其中1234是Java进程的PID)。
依赖于动态附加机制的工具(jstack,jmap,jcmd,jinfo)通过在创建的UNIX域套接字与JVM通信/tmp
。JVM在第一次尝试连接时延迟创建该套接字,如果-XX:+StartAttachListener
指定了标志,则在JVM初始化时急切地创建此套接字。
删除与套接字相对应的文件后,工具将无法连接到目标进程,并且不幸的是,没有重新启动JVM就无法重新创建通信套接字。
有关动态附加机制的说明,请参见此答案。