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

时间:2010-08-11 20:06:01

标签: java tomcat jmx jdk1.4

根据此文档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适配器
<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端口。 如果有人对如何深入研究问题的根源有一些建议或想法,那将非常有帮助。

3 个答案:

答案 0 :(得分:1)

自从1.5(JDK5)以来,Java已经添加了JMX支持。要将其与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远程连接上解决本地主机问题(文件/ etc / hosts,将127.0.0.1替换为服务器主机名出现的行上的服务器IP)。对于Windows,我认为可以应用同样的事情。

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

答案 1 :(得分:0)

如果您能够连接到在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使用端口重定向。这会导致问题

答案 2 :(得分:-1)

您是否定义了远程服务器?

-Djava.rmi.server.hostname=localhost"