我有一个启用了 JMX 监控的 Java 应用程序,如下所示:
-Dcom.sun.management.jmxremote.port=9999 \
// some other properties omitted
但是当我尝试重新启动应用程序时,有时会收到一条错误消息,提示 JMX 端口号已被使用。这是 Not Acceptable 。
因此我想将底层套接字的 SO_REUSEADDR 设置为 true 以避免此错误,但没有发现相关的 JMX 属性。
有什么想法吗?
最佳答案
恐怕您不能从命令行执行此操作。
您需要创建一个 RMIServerSocketFactory
,它会生成具有所需选项 (SO_REUSEADDR
) 的 ServerSockets
。
此处的文档:http://docs.oracle.com/javase/8/docs/technotes/guides/rmi/socketfactory/
其他人解决了同样的问题: https://svn.apache.org/viewvc?view=revision&revision=r1596579
关于java - 允许在立即启用 JMX 监控的情况下重新启动 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23531558/