如何分配动态端口并获取详细信息[JMX]

how to allocate dynamic port and get details of that[JMX]

要求: 我想 运行 可以在另一台机器上通过 JMX 远程查看的多个进程(具有远程属性 i.e.Dcom.sun.management.jmxremote.port )。

最初 Dcom.sun.management.jmxremote.port=9875(从属性文件中选择)但它限制我从 运行 单进程 only.saving 端口信息数据库中的计算机(我在 运行ning 进程中)以供进一步使用。

然后我使用-Dcom.sun.management.jmxremote.port=0动态端口分配给运行多个process.Now我可以运行多个进程,但我无法获取端口信息,因此我无法将该信息保存在数据库中,这些信息将进一步用于远程连接。

谢谢。

我已经用这个技巧获得了动态端口

ServerSocket socket = new ServerSocket(0); int jmxPort = socket.getLocalPort();

这将分配一个动态端口,然后将其作为 VM args 传递给 Dcom.sun.management.jmxremote.port=jmxPort

jmx端口可以保存在数据库中,需要建立JMX连接时可以使用。

希望对您有所帮助。