在Windows上使用JDK 1.4进行Tomcat 5.5监控

根据此文档http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html#Enabling_JMX_Remote应该可以远程监视在JDK 1.4上运行的Tomcat 5.5服务器,但是在搜索了整个Web并尝试之后多个操作系统我还没有比第一天更进一步。 到目前为止我的结果是。 用标准设置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适配器

  

完全没有效果。 当我调试它几乎看起来像属性handler.list和mx。*只是被忽略。 我知道我应该只使用JDK 1.5,我的担忧就会消失,但我们有一个很大的JDK 1.4遗留安装基础,如果我们可以使用JMX监控,它会很棒。 最终我想使用JConsole或JVisualVM连接到Tomcat,据我所知,连接URL看起来像

 service:jmx:rmi:///jndi/rmi://localhost:8888/jmxrmi 

8888是我的JMX端口。 如果有人对如何深入研究问题的根源有一些建议或想法,那将非常有帮助。

自1.5以来,JMX支持已添加到Java(JDK5)。 要将其与JDK 1.4一起使用,必须下载并安装扩展http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/download.jsp 。 我没用过它,但这可能是一个起点(来自http://java.sun.com/developer/technicalArticles/J2SE/jmx.html )

JMX技术实施

Java 2平台标准版5.0(J2SE 5.0)支持JMX 1.2和JMX Remote API 1.0,它现在是官方的JMX参考实现(RI)。 对于运行J2SE 1.4的开发人员,Sun Microsystems也提供了JMX RI,可以免费下载。

要从外部连接,请尝试删除该行

-Djava.rmi.server.hostname =本地主机

如果您正在使用Linux,请像@vinothkr所说的那样解决JMX远程连接上的localhost问题(文件/ etc / hosts,将127.0.0.1替换为服务器主机名出现的行上的服务器IP)。 对于Windows,我认为可以应用同样的事情。

关于连接器,它是您阅读的文档上jmx远程端口上的连接器。 您在协议AJP / 1.3上的server.xml上设置的连接器不相关。 它涉及Apache HTTPd(或其他Web服务器/负载均衡器)与Tomcat之间的通信。

如果能够连接到在Windows计算机上运行的JVM。 然后问题是你的hosts.conf

如果报告127.0.0.1,请尝试使用主机名-i,然后出现问题

查看此常见问题解答no 5. http://download.oracle.com/javase/1.5.0/docs/guide/management/faq.html

由于JMX使用端口重定向。 这会导致问题

你有远程服务器定义?

 -Djava.rmi.server.hostname=localhost"