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

最初是Dcom.sun.management.jmxremote.port = 9875(从属性文件中选取),但它严格限制我只能运行单个进程。将来自计算机(我正在运行进程的计算机)的端口信息保存在数据库中以备将来使用。

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

谢谢。

最佳答案

我用这个技巧来获得动态端口

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

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

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

希望会有所帮助。

10-08 08:57
查看更多