JMX端口动态分配

4

我在一台机器上运行了16个具有相同主方法和参数的Java进程。我希望通过JConsole远程监视这些进程。

硬编码端口号,如-Dcom.sun.management.jmxremote.port=5000是行不通的,因为这些进程使用相同的配置,无法使用相同的端口。

JVM是否可以动态地为这16个进程中的每一个选择不同的端口?


1
如果JVM动态选择它们,你怎么知道要连接哪个端口? - jtahlborn
2个回答

1

使用RMI连接器可能是一种方式,因为您可以指定代理的URL。

如果需要,您可以使用以下方法编程创建RMI注册表:

java.rmi.registry.LocateRegistry.createRegistry(port);

您可能会发现以下不相关的示例有用:使用JMX穿越防火墙进行连接


0

我认为Oracle JVM不支持这样的功能。唯一可能起作用的是使用端口“0”,它在某些RMI相关的内容中启用了“动态”端口选择。


如果它在动态端口上运行,我们如何知道它分配的是哪个端口? - Learnis
@Learnis 这是我在上面的原始问题的评论中提出的同样的问题。我没有答案。 - jtahlborn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接