要求:我想运行多个进程(具有远程属性ieDcom.sun.management.jmxremote.port),可以通过另一台机器上的JMX远程查看。
最初是Dcom.sun.management.jmxremote.port = 9875 (从属性文件中挑选)但它严格限制我从机器运行单个进程仅保存端口信息(我在哪里运行进程) )在数据库中供进一步使用。
然后我使用-Dcom.sun.management.jmxremote.port = 0 进行动态端口分配以运行多个进程。现在我可以运行多个进程但是我无法获取端口信息这样我就可以将这些信息保存在数据库中,以便进一步用于远程连接。
感谢。
答案 0 :(得分:0)
我已经使用这个技巧获得动态端口
ServerSocket socket = new ServerSocket(0);
int jmxPort = socket.getLocalPort();
这将分配一个动态端口,然后将其传递给VM args Dcom.sun.management.jmxremote.port = jmxPort
jmx端口可以保存在数据库中,可以在需要进行JMX连接时使用。
希望会有所帮助。