我正在 VirtualBox VM (Windows 2008 Server) 内托管的 Weblogic 服务器上运行应用程序。要连接 JRockit Mission Control Profiler,我的服务器参数如下:
-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n
当我启动服务器时,在 ProcessExplorer 中我可以看到应用程序正在监听端口 4000。
但在任务控制 UI 中,我既无法在默认本地连接中看到此应用程序,也无法使用手动端口配置作为新连接。我可以看到同一虚拟机中其他 Java 应用程序的连接。
我的配置是这样的:
- guest (VM) 操作系统: Windows 2008 Server
- 主机操作系统:Windows 7 虚拟机网络:桥接适配器(混杂:拒绝)
- 服务器: Weblogic 12c
- Java:1.6
- JVM: Oracle JRockit(R)(构建 R28.2.5-20-152429-1.6.0_37-20120927-1915-windows-x86_64,已编译 模式)
- 虚拟机: VirtualBox 4.2.4
我能找到的最适合 Linux VM 的答案是 this .
我尝试了以下:
- 具有高级安全性的 Windows 防火墙 -> 入站规则 -> 添加 端口 4000 具有完全访问权限
- 具有高级安全性的 Windows 防火墙 -> 出站规则 -> 添加具有完全访问权限的端口 4000
- 更改了虚拟机网络 -> 桥接适配器 -> 混杂:允许全部
- 更改了虚拟机网络 -> NAT
但还没有运气。有人以前遇到过这个问题吗?
最佳答案
上面的 JVM 标志用于 JDWP 样式调试,而不是使用 JMXRMI 进行远程连接,而 JRockit Mission Control 正在使用 JMXRMI。
您应该使用 -Dcom.sun.management.jmxremote 属性运行, http://docs.oracle.com/javase/7/docs/technotes/guides/management/agent.html
或者对于 JRockit,您也可以使用简写标志 -Xmanagement
http://docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#BABJDIGF
我建议 -Xmanagement:port=4000,ssl=false,authenticate=false
然后您应该能够创建到服务器操作系统主机名/IP 和端口 4000 的自定义 jmc 连接。
如果您在同一主机上运行 WLS 和 JRMC,您应该能够在 JVM 浏览器中看到正在运行的 WLS。如果不这样做,您仍然可以使用与上面相同的标志。
关于java - 无法连接 VirtualBox VM 上的分析器 (JMC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26094288/