【发布时间】:2010-08-11 20:06:01
【问题描述】:
根据此文档http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html#Enabling_JMX_Remote,应该可以远程监控在 JDK 1.4 上运行的 Tomcat 5.5 服务器,但是在搜索整个网络并尝试多个操作系统之后,我仍然没有比第一天更进一步。 到目前为止,我的结果是。使用标准设置 Tomcat
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=%my.jmx.port%
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=localhost
在 JDK 1.5 及更高版本上可以正常工作。 调试到 Tomcat 可以让我访问 MBeanServer,但我无法从外部连接到它。根据维基百科http://en.wikipedia.org/wiki/Java_Management_Extensions的信息 我只需要一个工作连接器,但我不知道如何让它工作。
尝试根据
设置HTTP Adapter<Connector port="${AJP.PORT}"
handler.list="mx"
mx.enabled="true"
mx.httpHost="${JMX.HOST}"
mx.httpPort="${JMX.PORT}"
protocol="AJP/1.3" />
完全没有效果。当我调试它几乎似乎属性 handler.list 和 mx.* 只是被忽略了。我知道我应该只使用 JDK 1.5,然后我的担忧就消失了,但是我们有大量的 JDK 1.4 旧版安装基础,如果我们可以使用 JMX 监控,那就太好了。 最终我想使用 JConsole 或 JVisualVM 连接到 Tomcat,据我所知,连接 URL 看起来像
service:jmx:rmi:///jndi/rmi://localhost:8888/jmxrmi
8888 是我的 JMX 端口。 如果有人对如何深入问题的根源有一些建议或想法,那将非常有帮助。
【问题讨论】:
-
根据download-llnw.oracle.com/javase/1.5.0/docs/guide/management/…,我什至不需要 -Djava.rmi.server.hostname=localhost 选项。它应该工作。但这适用于 Java 1.5 而不是 1.4,所以仍然感谢您的帮助
-
你有在某些 *nix 机器上运行的 tomcat 吗?
-
是的 vinothkr tomcat 在 *nix 上运行