当前位置:  开发笔记 > 运维 > 正文

尝试启动JFR记录时出现AttachNotSupportedException

如何解决《尝试启动JFR记录时出现AttachNotSupportedException》经验,为你挑选了1个好方法。

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就无法重新创建通信套接字。

有关动态附加机制的说明,请参见此答案。



1> apangin..:

可能的原因之一是/tmp/.java_pid1234文件已被删除(其中1234是Java进程的PID)。

依赖于动态附加机制的工具(jstack,jmap,jcmd,jinfo)通过在创建的UNIX域套接字与JVM通信/tmp。JVM在第一次尝试连接时延迟创建该套接字,如果-XX:+StartAttachListener指定了标志,则在JVM初始化时急切地创建此套接字。

删除与套接字相对应的文件后,工具将无法连接到目标进程,并且不幸的是,没有重新启动JVM就无法重新创建通信套接字。

有关动态附加机制的说明,请参见此答案。

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有