我正在尝试如下配置JBoss:
-agentpath:C:\Progra~1\jprofiler8\bin\windows-x64\jprofilerti.dll
添加到standalone.bat
。请注意,未指定nowait
,因此VM将等待JProfiler GUI连接。standalone.bat
问题在于,无论我做什么,“快速连接”窗口都看不到JBoss JVM。
这是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 ...
以下是我尝试过的一些事情:
nowait
,连接成功(即使是来自IDEA)。nowait
,我只能从JProfiler GUI中的预定义会话进行连接。在此之后,我也可以从IDEA连接。最后一点是最有趣的。保存的会话还有哪些附加信息可以检测“等待”的JProfiler代理?
以下是我的用例的限制:
nowait
。答案 0 :(得分:2)
当分析代理程序在启动时等待连接时,附加机制不起作用,因为尚未加载启用attach的jvmstat系统。事实上,没有加载任何Java类,所以任何需要Java代码的东西都不能在那个阶段工作。
要分析这样一个等待的VM,您需要一个远程分析会话。在JProfiler 8中,IDE集成不支持此功能。
这可以在JProfiler 9.0中实现(即将发布)。附加对话框将有两种模式,即列出所有本地运行的VM的本地模式和一个可以输入主机名和端口的远程连接选项。
但是,您也可以直接从IDEA分析JBoss运行配置。然后您不必修改启动脚本。