2015-05-18 44 views
2

我试图JBoss的个人资料如下:如何从IDEA JProfiler插件连接到无需启动的JVM?

  • 添加-agentpath:C:\Progra~1\jprofiler8\bin\windows-x64\jprofilerti.dllstandalone.bat。请注意,未指定nowait,因此VM将等待JProfiler GUI连接。 “ - >附加到JVM运行”

的问题是,“快速连接”窗口中没有看到JBoss的JVM,不管我做什么

  • 运行standalone.bat
  • 利用IDEA重视。

    这里是JBoss标准输出显示该JProfiler的准备:

    Calling "C:\src\ss-master\middle\runtime\jboss-as-7.1.1.Final\bin\standalone.conf.bat" 
    =============================================================================== 
    
        JBoss Bootstrap Environment 
    
        JBOSS_HOME: C:\src\ss-master\middle\runtime\jboss-as-7.1.1.Final 
    
        JAVA: C:\tools\java\bin\java 
    
        JAVA_OPTS: -XX:+TieredCompilation -agentpath:C:\Progra~1\jprofiler8\bin\windows-x64\jprofilerti.dll -Dprogram.name=standalone_jprofiler.bat -Xms256m -Xmx8192m -XX:NewRatio=6 -XX: 
    PermSize=128m -XX:MaxPermSize=256m -Xss512K -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.war 
    ning=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djboss.server.default.config=standalone.xml -Dorg.jboss.server.bootstrap.maxThreads=8 -agentlib:jdwp=transport=dt_socket,se 
    rver=y,suspend=n,address=5001 
    
    =============================================================================== 
    
    JProfiler> Protocol version 41 
    JProfiler> Using JVMTI 
    JProfiler> JVMTI version 1.1 detected. 
    JProfiler> 64-bit library 
    JProfiler> Listening on port: 8849. 
    JProfiler> Instrumenting native methods. 
    JProfiler> Can retransform classes. 
    JProfiler> Can retransform any class. 
    JProfiler> Native library initialized 
    JProfiler> VM initialized 
    JProfiler> Waiting for a connection from the JProfiler GUI ... 
    

    下面是一些我尝试过的事情:

    • 从JProfiler的UI“快速连接”也没有请参阅JBoss VM。
    • nowait的启动选项中,连接成功(甚至来自IDEA)。
    • 没有nowait,我只能从JProfiler GUI中的预定义会话连接。在此之后,我也可以从IDEA连接。

    这最后一点是最有趣的。保存的会话有哪些附加信息可以检测到“等待”的JProfiler代理?

    下面是我用例的约束:

    • 我要开始从IDEA的分析,以便跳转到源代码带我去的想法。
    • 我想介绍启动阶段,所以我买不起nowait
  • 回答

    2

    当分析代理在启动时等待连接时,附加机制不起作用,因为启用附加的jvmstat系统尚未加载。实际上,没有加载Java类,因此没有任何需要Java代码的东西可以在该阶段工作。

    要配置这样一个等待的虚拟机,您需要远程分析会话。在JProfiler 8中,IDE集成不支持此功能。

    这将是可能的JProfiler 9.0(即将发布)。附加对话框将有两种模式,本地模式列出所有本地运行的虚拟机和远程附加选项,您可以在其中输入主机名和端口。

    但是,您也可以直接从IDEA分析JBoss运行配置。然后你不必修改启动脚本。

    +0

    感谢您的解释。关于你的建议,我不想从IDE运行JBoss。我需要分析各种JBoss安装,最简单的方法就是连接到许多已安装的JVM中的一个(就像你为调试所做的那样)。 –