首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解释JMX URL

解释JMX URL
EN

Stack Overflow用户
提问于 2010-05-05 02:48:59
回答 3查看 69.4K关注 0票数 86

我正在尝试理解一个JMX服务URL。

代码语言:javascript
复制
service:jmx:rmi://192.168.30.10:1234/jndi/rmi://192.168.30.10:2344/jmxrmi

如果有人能帮我理解这一点,那就太好了。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-18 04:15:19

我将重用我之前为这个问题写的答案:Cannot connect to Tomcat's MBeanServer via jconsole in Java6

它还不完整,但可能会有所帮助:

假设您在“目标计算机”上运行JMX服务器(别名为“JMX代理”,别名为“要连接的JVM”),其中RMI注册表端口位于“RMI注册表端口”,而JMX RMI服务器端口位于“JMX RMI服务器端口”。

注意:

RMI注册表告诉JMX客户端在哪里可以找到JMX RMI服务器端口;信息可以在jmxrmi.

  • The注册表项下获得。RMI注册表端口通常称为

  • ,因为它是在JVM启动时通过系统属性设置的。

  • JMX RMI服务器端口通常是,因为JVM会随机选择它(如果没有采取其他预防措施)。

以下URI将导致连接成功(已测试)

service:jmx:rmi://<TARGET_MACHINE>:<JMX_RMI_SERVER_PORT>/jndi/rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi

这看起来很难看。让我们把它切开。

这个URI是一个RFC2609“服务定位协议URL”(嗯,它实际上是一个URI,对吧?)

它由以下部分组成:

  • service -一个常量
  • jmx:rmi -服务类型由:抽象型rest和URL方案rmi
  • the rest- sap (服务访问协议specification)

)

sap被分解为:

  • //<TARGET_MACHINE>:<JMX_RMI_SERVER_PORT> - URL - ipsite
  • /jndi/rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi part

一个消息灵通的JMX客户机连接到"ipsite“来进行JMX-over-RMI交换;但是不知道该端口的JMX客户机怎么办?耐心..。

URL部分被分解为:

  • /jndi/ -这似乎告诉JMX客户端,它可以在follows
  • rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi的位置获得查找信息-是的,我们在RMI注册表的查找键jmxrmi

下获得了有关JMX RMI Server的信息

这在某种程度上是本末倒置的,因为必须首先联系由SLP URL的后部分提供的RMI注册中心。

在抓头之后,直观地,让我们尝试一下:

service:jmx:rmi://<TARGET_MACHINE>/jndi/rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi

是的,这是可行的!JMX RMI服务器端口可以很好地从注册表中获得。转念一想,目标机器也应该从注册表中获得,因此:

service:jmx:rmi:///jndi/rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi

更好的是,这也是有效的!

参考文献:

  1. http://download.oracle.com/javase/6/docs/api/javax/management/remote/rmi/package-summary.html
  2. http://download.oracle.com/javase/6/docs/api/javax/management/remote/JMXServiceURL.html
  3. http://mx4j.sourceforge.net/docs/ch03s04.html
  4. http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html#gdevg
  5. http://www.rfc-editor.org/rfc/rfc2609.txt
票数 110
EN

Stack Overflow用户

发布于 2016-08-18 17:38:36

解释如下:

代码语言:javascript
复制
service:jmx:rmi://192.168.30.10:1234/jndi/rmi://192.168.30.10:2344/jmxrmi

  1. service:jmx:rmi://192.168.30.10:1234 -表示在IP地址为192.168.30.10的机器上有一个JMX代理。JMX代理使用(TCP)端口1234通过RMI提供JMX服务(基本上充当RMI server).
  2. /jndi/rmi://192.168.30.10:2344/jmxrmi --表示通过RMI与JMX代理交互的RMI存根可以在RMI注册表中找到,该注册表在IP地址为192.168.30.10的机器上运行,并使用(TCP)端口2344。要获得RMI,您需要查找"jmxrmi“绑定。

前面的回答建议URL的第二部分用于获取JMX RMI服务器的服务器端口。这是不正确的。JMX RMI服务器端口是(TCP) 1234,是URL的一部分。从RMI注册中心得到的是RMI (javax.management.remote.rmi.RMIServerImpl_Stub),您可以使用它通过RMI来与JMX (MBean Server)通信。

希望这能有所帮助。

票数 8
EN

Stack Overflow用户

发布于 2010-05-05 03:29:02

根据javax.management.remote.rmi的说法

这个url是这样组装的

代码语言:javascript
复制
service:jmx:rmi://ignoredhost/jndi/rmi://myhost/myname
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2768087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档